java记事本课程设计
- 格式:doc
- 大小:202.00 KB
- 文档页数:21
目录目录 (1)1 引言 (2)2、需求分析 (3)2.1系统概述 (3)2.2 系实统现思路 (3)3 系统详细设计 (4)3.1 界面设计 (4)3.2 功能设计 (5)3.3 代码设计 (6)4 系统调试运行 (8)4.1 界面调试 (8)4.2 功能调试 (11)5 课程设计总结与思考 (12)6 参考文献 (12)7 附录 (13)1 引言目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。
按照教学培养计划要求,学生在学习完课本中指定课时的知识后,应安排一定课时的课程设计。
其主要目的是使学生深入理解并实践在本课程中所学的有关JAVA程序设计方面的语言基础、异常处理、事件处理、小应用程序以及图形用户界面设计等。
故此“日历记事本”应运而生。
本课程设计是为了配合Java程序设计课程 ,帮助学生深入学习掌握Java语言,熟练运用这个工具而设立的课程。
通过课程设计各个项目的综合训练,加强学生对JAVA语言的理解,检验学生对专业理论知识理解与掌握的程度,锻炼学生综合运用JAVA程序设计处理所学的知识实际分析问题、解决问题的能力,使课堂上的理论在实践中得到运用,提高学生的综合素质,为学生毕业后的实际工作打好基础。
同时也满足了大多数同学对于一款简单易用的日记本软件的需求。
设计一个简单的Windows记事本,可以实现以下功能:文件的新建,打开,保存和另存;对文件的编辑,如全选,复制,剪切,粘贴;执行完操作后,能够顺利关闭记事本。
通过这次设计,可以帮助学生:提高对Java语言设计的掌握能力;理论联系实际,进一步提高学生的软件开发技术;培养学生分析、解决问题的能力。
2、需求分析现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,Word。
功能也是应有尽有,有能改变字体的,有能改变文字颜色的。
但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握[2]。
仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。
本程序设计就是依照这样一种使用需要设计了一个简单的实现特定功能的记事本程序。
2.1系统概述用户可以向前翻页查询前一个月的日期,也可以向后翻页查询下一个月的日期;用户可以针对某一天来添加,删除和编辑这一天的日程提醒信息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框;用户可以查询到某个月的所有的提示信息。
是一个平时写日记、备忘录的好工具[3]。
2.2 系实统现思路设计两个类,一个jsb类,具有程序的要求和功能再创建一个keshe 主类,在主类中创建一个jsb类的对象,就可以直接在编译器中运行程序[4]。
2.2.1 界面设计在主界面中设计一个Frame容器,并在其中加入一个下拉菜单和一个文本域控件,把该容器设置为GridLayout(1,1)布局。
2.2.2 功能设计在下拉菜单中加入子菜单并进行监听,分别实现对文件的操作功能。
点击不同菜单项时,显示不同界面[5]。
2.2.3 代码设计编写每个控件的相关代码,并进行调试。
3 系统详细设计3.1 界面设计创建一个下拉菜单和文本域,在文本域中显示编辑的文件信息[6]。
主要代码:f=new Frame(s);p1=new TextArea("");f.setSize(400,600);f.setBackground(Color.white);f.setVisible(true);menubar=new MenuBar();menu1=new Menu("文件");menu2=new Menu("编辑");menu3=new Menu("帮助");item1=new MenuItem("新建");item2=new MenuItem("打开");item3=new MenuItem("保存");item4=new MenuItem("另存为");item5=new MenuItem("退出");item6=new MenuItem("全选");item7=new MenuItem("复制");item8=new MenuItem("剪切");item9=new MenuItem("粘贴");item10=new MenuItem("关于");menu1.add(item1);menu1.add(item2);menu1.add(item4);menu1.add(item5);menu2.add(item6);menu2.add(item7);menu2.add(item8);menu2.add(item9);menu3.add(item10);menubar.add(menu1);menubar.add(menu2);menubar.add(menu3);f.setMenuBar(menubar);3.2 功能设计对每个菜单项进行注册监听。
点击不同菜单项时,显示不同界面。
主要代码item1.addActionListener(this);item2.addActionListener(this);item3.addActionListener(this);item4.addActionListener(this);item5.addActionListener(this);item6.addActionListener(this);item7.addActionListener(this);item8.addActionListener(this);item9.addActionListener(this);item10.addActionListener(this);3.3 代码设计部分菜单项的相关代码:新建文件if (e.getSource()==item1){ if (i==0&&(ss.length()!=0)){ bc(); }elsep1.setText("");i=0;f.setTitle("文件对话框"); }打开文件if (e.getSource()==item2){ fd=new FileDialog(f,"打开文件",0);fd.setVisible(true);try{ file=new File(fd.getDirectory(),fd.getFile());f.setTitle(fd.getFile()+"文件对话框");FileReader fr=new FileReader(file);BufferedReader br=new BufferedReader(fr); String line = null;String view = "";while((line=br.readLine())!=null){ view += line+"\n"; }p1.setText(view);br.close();fr.close(); }catch(IOException expIn){} }复制文件if (e.getSource()==item7){ try{String str=p1.getSelectedText();if(str.length()!=0){ strt=str;} }catch(Exception ex){ } }粘贴文件if (e.getSource()==item9){ if(strt.length()>0){ p1.insert(strt,p1.getCaretPosition()); }退出记事本if (e.getSource()==item5){ if (i==0 &&(ss.length()!=0)){ bc(); } else { System.exit(0); } }4 系统调试运行4.1 界面调试确定主窗体,设置主窗体的属性,对窗体进行布局,加入所需控件并对控件进行初始化。
在完成加入菜单控件后,不能缺少函数f.setMenuBar(menubar); 语句,将menubar设为主窗体的菜单条,否则会看不到菜单栏 。
4.1.1 主界面主要是用于对选择相应的功能进行相应的功能,主界面主要包括文件,编辑,帮助三个下拉菜单功能。
如图4.1.2文件菜单界面文件菜单界面主要用于文件的相应功能,其中包括新建,打开,保存,另存为和退出。
4.2.3 编辑菜单界面编辑菜单界面主要用于对文件的编辑,其中包括有剪切,复制,粘贴,删除,查找替换全选等功能 。
4.1.4 打开文件及另存文件时的界面4.1.5 打开了某一个文本文件4.2 功能调试对所有菜单项进行注册监听。
当进行除保存以外的菜单项的功能外,在actionPerformed中要编写判断界面是否已经打开或者编辑了文件,如果是,在进行别的功能之前,先对本文件的保存功能,以免文件的丢失。
在具体实现中可以用变量i来判断文件是否处于保存状态 。
5 课程设计总结与思考在为期一周的JAVA课程设计过程中,我深深地感受到了自己对JAVA 这门优秀的编程语言的掌握的不足。
但我知道我还有很多东西要学。
,经过这次课程设计的鞭策和逼迫,我们才不得不通过各方面途径去查取相关资料,遇到了很多困难,也是在做之前没有想到的,才知道现实和理论的差距,不做一次的确不知道自己的不足之处,不过我们从最初的无从下手,到分析设计,到编程调试,一步步走来,知识一点一滴的积累,在老师的帮助与指导、同组人员的研究与探讨下最终完成了该课程设计。
在整个课程设计过程中,我感受最深的就是只要自己认真努力,没有过不去的坎。
有了问题,就一定要弄清楚,放在一边永远都无法完成。
同时,我也认识到了团结互助的重要性,一个人解决不了的问题,一定要多问多与别人讨论,在讨论的过程中完善自己的想法,并能碰撞出更为新颖的火花。
课程设计让我们综合了我们所学的JAVA知识,给了我们一个提升自己编程能力的平台,让我们明白JAVA在现代高科技社会中所起的重大作用。
在以后的学习中,我会进一步加深对于JAVA的理解和使用,通过阅读相关知识拓宽自己对于JAVA的了解。