1、1java 记事本设计学 院: 专业年级: 学 号: 学生姓名: 成绩评定: 2目 录-java 记事本设计第 1 章 系统设计目的.3第 2 章 系统实现思路.3第 3 章 系统详细设计.8第 4 章 系统调试运行.8第 5 章 课程设计心得.9第 6 章 参考文献.9第 1 章 系统设计目的31.1 需求分析现在网络上各种文档编辑器数不胜数,有 EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad+,win32pad ,SkimEdit,UniRed, xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的
2、瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。1.2 程序设计思路设计一个简单的 Windows 记事本,可以实现以下功能:1:文件的新建,打开,保存和另存;2:对文件的编辑,如全选,复制,剪切,粘贴;3:执行完操作后,能够顺利关闭记事本。第 2 章 系统实现思路设计两个类,一个 jsb 类,具有程序的要求和功能再创建一个 keshe 主类,在主类中创建一个 jsb 类的对象,就可以直接在编译器中运行程序。1.1 界面设
3、计在主界面中设计一个 Frame 容器,并在其中加入一个下拉菜单和一个文本域控件,把该容器设置为 GridLayout(1,1)布局。1.2 功能设计在下拉菜单中加入子菜单并进行监听,分别实现对文件的操作功能。点击不同菜单项时,显示不同界面。1.3 代码设计编写每个控件的相关代码,并进行调试。第 3 章 系统详细设计1.1 界面设计4创建一个下拉菜单和文本域,在文本域中显示编辑的文件信息。主要代码:Dimension scrnsize = Toolkit.getDefaultToolkit().getScreenSize();clipboard = Toolkit.getDefaultTool
4、kit().getSystemClipboard();jFrame = new JFrame(“我的记事本“);jFrame.setSize(300, 300);jFrame.setLocation(scrnsize.width / 2 - jFrame.getWidth() / 2,scrnsize.height / 2 - jFrame.getHeight() / 2);jFrame.setVisible(true);menubar = new MenuBar();menu1 = new Menu(“文件“);menu2 = new Menu(“编辑“);menu3 = new Menu(
5、“字体“);menu4 = new Menu(“帮助“);menuItemNew = new MenuItem(“新建“);menuItemOpen = new MenuItem(“打开“);menuItemSave = new MenuItem(“另存为“);menuItemExit = new MenuItem(“退出“);menuItemCopy = new MenuItem(“复制“);menuItemCut = new MenuItem(“剪切“);menuItemPast = new MenuItem(“粘贴“);menuItemItalic = new MenuItem(“斜体“
6、);menuItemPlain = new MenuItem(“正常“);meunItemBold = new MenuItem(“粗体“);menuItemHelp = new MenuItem(“帮助“);text = new TextArea(“, 10, 10, TextArea.SCROLLBARS_VERTICAL_ONLY);f_SaveAs = new FileDialog(jFrame, “保存文件对话框“, FileDialog.SAVE);f_Load = new FileDialog(jFrame, “打开文件对话框“, FileDialog.LOAD);menu1.a
7、dd(menuItemNew);menu1.add(menuItemOpen);menu1.add(menuItemSave);menu1.addSeparator();menu1.add(menuItemExit);menu2.add(menuItemCopy);menu2.add(menuItemCut);menu2.add(menuItemPast);menu3.add(menuItemPlain);menu3.add(menuItemItalic);menu3.add(meunItemBold);5jFrame.setMenuBar(menubar);menubar.add(menu1
8、);menubar.add(menu2);menubar.add(menu3);menubar.setHelpMenu(menu4);menu4.add(menuItemHelp);jFrame.add(text, BorderLayout.CENTER);1.2 功能设计对每个菜单项进行注册监听。点击不同菜单项时,显示不同界面。主要代码public void windowClosing(WindowEvent arg0) / TODO Auto-generated method stubf_SaveAs.setVisible(false););jFrame.addWindowListener
9、(new WindowAdapter() public void windowClosing(WindowEvent arg0) / TODO Auto-generated method stubSystem.exit(0););menuItemNew.addActionListener(this);menuItemOpen.addActionListener(this);menuItemSave.addActionListener(this);menuItemExit.addActionListener(this);menuItemCopy.addActionListener(this);m
10、enuItemCut.addActionListener(this);menuItemPast.addActionListener(this);menuItemItalic.addActionListener(this);menuItemPlain.addActionListener(this);meunItemBold.addActionListener(this);menuItemHelp.addActionListener(this);61.3 代码设计新建文件public void newo() text.setText(“);打开文件public void open() f_Load
11、.setVisible(true);text.setText(null);if (f_Load.getFile() != null) String s;try File file = new File(f_Load.getDirectory(), f_Load.getFile();fr = new FileReader(file);br = new BufferedReader(fr);while (s = br.readLine() != null) text.append(s + “n“);fr.close();br.close(); catch (FileNotFoundExceptio
12、n e) / TODO Auto-generated catch blocke.printStackTrace(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();保存文档public void save() f_SaveAs.setVisible(true);if (f_SaveAs.getFile() != null) try File file = new File(f_SaveAs.getDirectory(), f_SaveAs.getFile();fw = new FileWri
13、ter(file);bw = new BufferedWriter(fw);7bw.write(text.getText(), 0, (text.getText().length();bw.flush();bw.close();fw.close(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();退出记事本public void exit() System.exit(0);复制文字public void copy() String temp = text.getSelectedText();
14、StringSelection selectText = new StringSelection(temp);clipboard.setContents(selectText, null);剪切文字public void cut() String temp = text.getSelectedText();StringSelection selectText = new StringSelection(temp);clipboard.setContents(selectText, null);int start = text.getSelectionStart();int end = text
15、.getSelectionEnd();text.replaceRange(“, start, end);复制文字public void paste() Transferable content = clipboard.getContents(this);DataFlavor flaver = DataFlavor.stringFlavor;if (content.isDataFlavorSupported(flaver) try String temp = (String) content.getTransferData(flaver);text.append(temp); catch (Un
16、supportedFlavorException e) / TODO Auto-generated catch blocke.printStackTrace();8 catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace(); 第 4 章 系统调试运行1.1 界面调试确定主窗体,设置主窗体的属性,对窗体进行布局,加入所需控件并对控件进行初始化。在完成加入菜单控件后,不能缺少 f.setMenuBar(menubar); 语句,将 menubar 设为主窗体的菜单条,否则会看不到菜单栏。如图:1.2 功能调
17、试对所有菜单项进行注册监听。当进行除保存以外的菜单项的功能外,在actionPerformed 中要编写判断界面是否已经打开或者编辑了文件,如果是,在进行别的功能之前,先对本文件的保存功能,以免文件的丢失。在具体实现中可以用变量 i 来判断文件是否处于保存状态。第 5 章 课程设计心得1.1 课程目的9综合运用理论知识和技能,设计开发记事本,熟悉应用系统的开发过程,培养独立思考能力,检验学习效果和动手能力,提高工程实践能力,为将来实际工作打下坚实的基础。1.2 设计收获经过记事本的课程设计,首先,让我加深了对 Java 语言的理论知识的理解;其次,让我更加熟练的掌握了 Java 语言的设计能力
18、并且有了实践经验;最后,加强了我对 Java 语言的学习兴趣和好感。第 6 章 参考文献1 耿详义,张跃平 . Java 2 实用教程. 北京:清华大学出版社,2004.22 张利国.Java 实用教程案例.北京:清华大学出版社,2003.103 周晓聪,等.面向对象程序设计与 Java 语言.北京:机械工业出版社,2004.34 李尊朝.Java 语言程序设计.北京:中国铁道出版社,2004.25 (美)Philip Heller.Complate Java 2 Certification Study Guide Fourth Edition(Java 2 证学习指南) (第四版 英文版). 北京:电子工业出版社,2004.1