最新JAVA课程设计(1).doc

上传人:1595****071 文档编号:35273602 上传时间:2022-08-21 格式:DOC 页数:81 大小:1.04MB
返回 下载 相关 举报
最新JAVA课程设计(1).doc_第1页
第1页 / 共81页
最新JAVA课程设计(1).doc_第2页
第2页 / 共81页
点击查看更多>>
资源描述

《最新JAVA课程设计(1).doc》由会员分享,可在线阅读,更多相关《最新JAVA课程设计(1).doc(81页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateJAVA课程设计(1)Xxx学校JAVA程序设计课程设计报告 目 录一、项目背景及意义:2二、系统描述3三、分析与设计41.分析42.功能模块划分43.功能模块流程图54.各模块的关键代码6四、系统测试7五、课程设计进度12六、心得体会12七、参考文献13八、附录13一、 项目背景及意义:记事本千百年来都在人类的工作生活中起到重要的作用,计算机革命电子产品未出现之前,

2、人们的记事都是基于纸质加笔两者的简单记事,也即单纯的文本记录。直到计算机的出现和更新换代,高科技电子产品大行其道,人们日益将在纸质上的记事转移到将事件记录在个人电子设备如PC上,现在基于电子移动设备如手机和平板等的记事本app开发更是迅猛,功能更加丰富多彩,能记录的不单纯是文本了,人们能将声音和图片甚至视频结合起来,将一件事“有声有色”地记录下来,保存在个人电子设备产品中。近年来产生的采用云存储技术的“云笔记”,更是能让人们随时随地将集文本、语音、图像和视频于一体的事件记录保存在所谓的“云端”,能同步到个人其他设备中,解决了个人资料和信息跨平台跨地点的管理问题。现在我们以有限的资源以及智慧力量

3、,用Java语言编写一个可以在装有jar模拟器的个人电子移动设备上使用的简单记事本软件,没视频记录功能和基于网络功能但却能集文本、声音和图像于一起记录的功能的记事本,我们将轻便和简洁走向极致!所以此记事本软件操作起来简单易上手,能给带来同学简单便捷的记事体验。另外,这不单纯是个人人都可以打开的记事本,使用时需要账号密码登陆,因此能较好地保障个人隐私。二、 系统描述 Java的前身是Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被用于更大范围的Internet上。1995年,Java语言的名字从Oak编程了Java。1997年J2SE1.1发布。1998年J2SE1.

4、2发布,标志Java2的诞生。十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。Java的体系结构由Java语言、Java class、Java API、Java虚拟机组成。它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。Java的平台标准有Java ME,Java SE和Java EE。Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。目前在众多的支持Java的开发工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuil

5、der,JDeveloper和Eclipse等。其中Java Development Kit 简称JDK是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少,所以选择了适合初学者使用的eclipse开发工具。三、 分析与设计1. 分析现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad+,win32pad ,SkimEdit,UniRed, xint 。功能也

6、是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的笔记本程序。2. 功能模块划分程序构建的记事本程序具有Windows系统记事本工具基本功能,并且能够创建多个不同的用户和保存图片功能。以下是具体说明:第一部 登陆界面(1) 用户名和密码输入文本框,供已注册的用户输入用户名和密码。(2) 登陆控件,在用户名和密码正确的前提下,进入软件主界面。(3) 注册控件,点

7、击此按钮,将进入用户创建,创建之后用户名和密码会自动保存在电脑的相应文件中。第一部分 菜单栏(1)菜单中有“新健”,“删除”,“显示”,“菜单”,“帮助”五个主菜单。(2)“新建”有“新建笔记”“新建笔记本”二个子菜单:分别用于创建新的笔记和新的笔记本。(3)“删除”中有“删除笔记”和“删除笔记本”二个子菜单,和“新建”相对应。(4)“显示”中可以选择界面的风格,有Metal风格、Windows风格、Motif风格、Nimbus风格;还有界面排版的选择,可以选择水平显示或垂直显示。(5)“帮助”菜单中有关于笔记本程序的说明,作者等信息。第二部分 笔记本排列区 显示用户创建的所有笔记本。第三部分

8、 笔记显示排列区 此处主要显示选中笔记本中的所有笔记,并且可以在此区右击来创建、删除笔记、查看笔记,当然也可以在菜单栏中的“新建”和“删除”菜单中创建和删除笔记。第四部分 笔记编辑区此部分为用户设计选择操作和右键操作,可以在笔记中插入图片、更改字体颜色、和插入时间;方便用户进行一系列的编辑操作,增强本记笔记本的用户体验性能。3. 功能模块流程图 4. 各模块的关键代码 1构造函数创建窗口界面 主菜单,子菜单 public MainFrame(String name)this.name=name;this.setUser_path(Users/+name);this.setBook_Path(t

9、his.getUser_path()+/默认笔记本);this.setNote_Path(this.getBook_Path()+/默认笔记); /一、菜单界面menu=new Menu(this);/*二、 创建三个JPanel *1.l笔记正文 TextPanel *2.笔记名目录及查找方式 DirectoryPanel *3.笔记类型目录及排序方式选择 NoteTypePane */*笔记正文部分*/TextPanel=new JPanel();rightPanel=new RightPanel(TextPanel,this);/*文件名目录部分*/DirectoryPanel=new

10、JPanel();midPanel =new MidPanel(DirectoryPanel,this);/*笔记类型目录部分*/NoteTypePanel =new JPanel();leftPanel=new LeftPanle(NoteTypePanel,this);leftPanel.update_Left_view();/三、处理拆分窗格splitM_R =new JSplitPane(1,DirectoryPanel,TextPanel);splitM_R.setOneTouchExpandable(true);splitL_M =new JSplitPane(1,NoteType

11、Panel,splitM_R);splitL_M.setOneTouchExpandable(true);this.add(splitL_M);/四、设置标题等this.setTitle(name+ 的笔记本);this.setLocation(200,100);this.setSize(1000,600);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true); 2 添加右键菜单并为其添加监听器 public RightPanel(JPanel panel,MainFrame mainFrame)th

12、is.mainFrame=mainFrame;this.panel=panel;/创建一个 文本域存放文字 JTextAreatextPane =new JTextPane();/设置自动换行textPane.setFont(new Font(, 1, 12);jsp_Pane=new JScrollPane(textPane);/滚轮/设置鼠标右击弹框效果 /cut cutItem=new JMenuItem(Cut,new ImageIcon(image/cut.png); cutItem.setAccelerator(KeyStroke.getKeyStroke(ctrl x);/设置快

13、捷键 ctrl x cutItem.addActionListener(this); /copy copyItem=new JMenuItem(Copy,new ImageIcon(image/copy.png); copyItem.setAccelerator(KeyStroke.getKeyStroke(ctrl x);/设置快捷键 ctrl O copyItem.addActionListener(this); /paste pasteItem=new JMenuItem(Paste,new ImageIcon(image/haha.png); pasteItem.setAccelera

14、tor(KeyStroke.getKeyStroke(ctrl v);/设置快捷键 ctrl v pasteItem.addActionListener(this); saveItem=new JMenuItem(Save,new ImageIcon(image/save.png); saveItem.setAccelerator(KeyStroke.getKeyStroke(ctrl s); saveItem.addActionListener(this); public void actionPerformed(ActionEvent e) / TODO Auto-generated me

15、thod stubif(e.getActionCommand()=Cut)/剪切textPane.cut();else if(e.getActionCommand()=Copy)/复制textPane.copy();else if(e.getActionCommand()=Paste)/粘贴textPane.paste();else if(e.getActionCommand()=Save)/保存this.book_Save();else if(e.getSource()=image_Button)/插入图片String temp=Tools.open_Choose();if(!temp.eq

16、uals(not)textPane.insertIcon(new ImageIcon(temp);else if(e.getSource()=font_Button)/修改字体颜色Color c=JColorChooser.showDialog(this, Color, Color.black);textPane.setForeground(c);else if(e.getSource()=timeButton)/插入时间Date now = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat(yyyy/MM/dd HH

17、:mm:ss);/可以方便地修改日期格式 String hehe = dateFormat.format( now ); textPane.replaceSelection(hehe);3 设为Document类型public static void setDocument(File file)try JTextPane tempPane=new JTextPane();FileOutputStream outputStream=new FileOutputStream(file);ObjectOutputStream oos=new ObjectOutputStream(outputStre

18、am);oos.writeObject(tempPane.getDocument();oos.close(); catch (FileNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();系统测试 1、笔记本登陆2 、用户注册3、菜单栏a.总菜单 b.新建菜单c.删除菜单d.显示菜单e.“菜单”菜单f.帮助 4.导入笔记、导出笔记、及插入图片选择5.字

19、体颜色选择 6.插入时间7、插入图片-四、 课程设计进度我们进行了若干阶段的部署,令课题研究可以在每个阶段有条不紊地进行。具体如下:(一)理论学习和开题论证1.浏览相关网站,查阅与课题研究的相关理论、研究方法;2.运用文献研究法,深入学习java理论,对要有关课题研究的知识进行理论上的研究和探讨。3,制订研究计划和方案 。(二)第一阶段1.以调查法为主开展研究。(1)对有关java的课题设计进行调查,查阅网络上java应用的设计案例,并分析和总结,寻找思路。(2)对更新频率快的java应用进行追踪,采取观察,评价、讨论的方式分析和总结。2.制订第二阶段实验方案,为下阶段实验做准备。(三)第二阶

20、段1.按计划在继续第一阶段实验的基础上,进一步加强java应用的实施和研究。采用实验法对上一阶段的总结的结论进行验证和拓展。2.让同学体验一下我们初步完成的作品,根据他们用完之后的感受,进一步修正作品存在的问题,完善作品。(四),总结阶段1.收集和整理研究资料,参照相关书籍分析和研究实验情况2.制订总结阶段计划3.总结和提炼研究成果4.全面总结实验工作5.解题论证6.成果展示(课题报告)(五)总结阶段(2013.12)整理材料,撰写课题报告。五、 心得体会 此次课程设计由我们小组一起共同合作完成,花费了差不多两个月的时间。在这期间我们共同协作,互帮互助取得了很好的效率,也为我们构建友好的同学关

21、系,学习气氛良好做出了一定的贡献。在这期间我领略到了团队协作的重要性,也看到了团队合作的高效率性。还有通过这次试验我们领悟到了团队的力量是巨大的,也学习到的一些学习方法,比如追查API,如何在短时间内学习一个自己不懂的东西那就是利用好所有的搜索引擎,多去图书馆找资料。总之此次课程设计我们不仅长了学科知识,在生活上我也长了见识。六、 参考文献 a.黄晓东 等编著 Java课程设计案例精编(第二版)M.北京:中国水利水电出版社,2007 b.李兴华 等编著 Java开发实战经典Java开发实战经典 北京:清华大学出版社,2009 C.李尊朝 苏军 Java程序设计(第二版) 图形用户界面设计、Sw

22、ing组件 中国铁道出版社,2007七、 附录1.程序结构2.程序(1)Tools.javapackage common;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectOutputStream;import javax.swing.*;public class Tools /*打开选择框 返回详细地址*/public static String open_Choose(

23、)JFileChooser jfc1=new JFileChooser();jfc1.setDialogTitle(请选择.);int judge=jfc1.showOpenDialog(null);jfc1.setVisible(true);/得到文件的完全路径if(judge=JFileChooser.APPROVE_OPTION)return (jfc1.getSelectedFile().getAbsolutePath();elsereturn not;/*保存选择框 返回详细地址*/public static String save_Choose()JFileChooser jfc1

24、=new JFileChooser();jfc1.setDialogTitle(请选择.);int judge=jfc1.showSaveDialog(null);jfc1.setVisible(true);/得到文件的完全路径if(judge=JFileChooser.APPROVE_OPTION)return (jfc1.getSelectedFile().getAbsolutePath();elsereturn not;/*显示对话框,需要传递 标题和显示内容*/public static void showMessage(String text,String title)JOption

25、Pane.showMessageDialog(null,text,title,JOptionPane.INFORMATION_MESSAGE | JOptionPane.OK_OPTION);/*新建笔记时将笔记设为Document类型,方便存储图片,在本地不能打开*/public static void setDocument(File file)try JTextPane tempPane=new JTextPane();FileOutputStream outputStream=new FileOutputStream(file);ObjectOutputStream oos=new O

26、bjectOutputStream(outputStream);oos.writeObject(tempPane.getDocument();oos.close(); catch (FileNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();/*删除文件 传一个文件地址 返回一个boolean 为了方便删除文件夹才将此方法提取出来*/public s

27、tatic boolean deleteFile(String path)File file=new File(path);return (file.delete();/*删除文件 传一个文件地址 返回一个boolean 先删除里面的文件再删除文件夹*/public static boolean deleteFolder(String path)File folder=new File(path);File list=folder.listFiles();for(int i=0;ilist.length;i+)deleteFile(path+/+listi.getName();return (

28、folder.delete();(2)User.javapackage common;/* * 处理用户属性 * 为用户创建自己的专有途径 * 如果有了则不创建 */import java.io.*;import javax.swing.JTextPane;import javax.swing.text.Document;import view.MainFrame;public class User public User(String name) /如果第一次登录的话,为用户新建一个专属区File file=new File(Users/+name);if(!file.exists()try

29、 file.mkdir(); catch (Exception e1) e1.printStackTrace();/第一次登录创建默认笔记本File book=new File(Users/+name+/默认笔记本);try book.mkdir(); catch (Exception e1) e1.printStackTrace();/第一次登录创建默认笔记File note=new File(Users/+name+/默认笔记本+/默认笔记.ser);try note.createNewFile();Tools.setDocument(note); catch (Exception e1)

30、 e1.printStackTrace();/构造完毕 正式进入笔记本new MainFrame(name); (3)login_zhuce.javapackage login;import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;import common.User;import view.MainFrame;public class login_zhuce extends JFrame implements ActionListener JPanel jp0;JPanel jp1,jp

31、2,jp3,jp4,jp5;JTextField jtf;JPasswordField jpf;JLabel jl1,jl2,jl3;JButton jb1,jb2,jb3;ImageIcon bg;public static void main(String args) / TODO Auto-generated method stublogin_zhuce lz = new login_zhuce();public login_zhuce()try /默认 NImbus风格UIManager.setLookAndFeel(com.sun.java.swing.plaf.nimbus.Nim

32、busLookAndFeel); catch (ClassNotFoundException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (InstantiationException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (IllegalAccessException e) / TODO Auto-generated catch blocke.printStackTrace(); catch (UnsupportedLook

33、AndFeelException e) / TODO Auto-generated catch blocke.printStackTrace();jp1 = new JPanel();jp2 = new JPanel();jp3 = new JPanel();jp4 = new JPanel();jp1.setOpaque(false); jp2.setOpaque(false); jp3.setOpaque(false); jp4.setOpaque(false);/no.1jl1 = new JLabel(用户名);jtf = new JTextField(10);jp1.add(jl1)

34、;jp1.add(jtf);/no.2jl2 = new JLabel(密 码);jpf = new JPasswordField(10);jp2.add(jl2);jp2.add(jpf);/3jb1 = new JButton(登陆);jb1.addActionListener(this);jb1.setActionCommand(denglu);jb2 = new JButton(取消);jb2.addActionListener(this);jb2.setActionCommand(quxiao);jb3 = new JButton(注册);jb3.addActionListener(

35、this);jb3.setActionCommand(zhuce);jp3.add(jb1);jp3.add(jb2);jp3.add(jb3);this.setLayout(new GridLayout(4,1);this.add(jp4);this.add(jp1);this.add(jp2);this.add(jp3);bg = new ImageIcon(image/huashi.jpg);jl3 = new JLabel(bg);jl3.setBounds(0, 0, 300, 200);this.getLayeredPane().add(jl3,new Integer(Intege

36、r.MIN_VALUE);jp5 = (JPanel)this.getContentPane();jp5.setOpaque(false); /设置透明this.setTitle(笔记本登陆);this.setSize(300,200);/ 获取屏幕分辨率,以此设置程序出现在屏幕中央Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();Dimension testSize = getSize();this.setLocation(screenSize.width - testSize.width) / 2, (sc

37、reenSize.height- testSize.height) / 2);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);public void actionPerformed(ActionEvent e)if(e.getActionCommand().equals(denglu)BufferedReader br = null;FileReader fr = null;File file = new File(ff);String str1

38、 = ff;if(file.isDirectory()File list = file.listFiles();int count = 0 ;/当账户和密码都符合时,进入主界面。for (int i = 0;ilist.length&count!=2;i+)/count=2表示已找到 对应的合法用户&count!=2String str2 = ;count = 0 ;int biaoji = 0;/标记变量限定读两行比较str2 = str1 + listi.getName(); try fr = new FileReader(str2);br = new BufferedReader(fr)

39、;String s1 = ;String s2 ; while(s1=br.readLine()!=null)/System.out.println(s1);if (biaoji = 0)/biaoji = 0 时验证 用户名 if (s1.equals(jtf.getText() count+;/count=1 表示用户名正确 else if (biaoji = 1)/biaoji = 1 时验证 密码s2 = new String(jpf.getPassword();if(s1.equals(s2)count+;/count=2 表示密码也正确if(count = 2)/用户名和密码均正确

40、/JOptionPane.showMessageDialog(null, 输入成功, 拉拉,/JOptionPane.INFORMATION_MESSAGE | JOptionPane.OK_OPTION);new User(jtf.getText();/设置用户信息this.dispose(); biaoji+; /end while br.close(); catch (Exception e2) / TODO Auto-generated catch blocke2.printStackTrace(); finallytry fr.close(); catch (IOException e1) / TODO Auto-generated catch blocke1.printStackTrace();/end forswitch (count) case 0: JOptionPane.showMessageDialog(null, .账户

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 成人自考

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁