1、基于java的记事本程序课程设计1 问题描述设计一个具有GUI界面的记事本,含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、设置字体和颜色等功能。这次课程设计由*、*和我三个人合作完成。*主要负责3概要设计和5测试分析。*4.1JM程序界面设计,我负责4. 2JM4类的实现。由于4.3事件处理和撰写程序关系密切,这两项都由*负责。2 需求分析本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:(1)、菜单中有“文件”、“编辑”、“格式”、“帮助”四个主菜单;(2)、“文件”有“新建”、“打开”、“保存”、“另存为”、“退出”分别用于
2、新建文件,打开文件,保存文件,另存文件,退出记事本。(3)、“编辑”中,有“剪切”、“复制”、“粘贴”三个子菜单:用于剪切文字,复制文字,粘贴文字,删除文字。(4)、“格式”中,有“字体”、“颜色”两个子菜单:用于设置文字的字体而和颜色,字体有“宋体”、“楷体”、“黑体”颜色有“红”、“蓝”、“绿”。(5)、“帮助”菜单中有“关于”的子菜单,用于描述记事本程序的相关信息。3 概要设计31自定义类说明3.1.1 类名: JM (1)作用: 主类(2)继承的父类: JFrame类 (3)成员变量说明:JMenuBar mb=new JMenuBar(); /定义一个菜单项 /*定义各个菜单及其菜单
3、项*/ JMenu m1=new JMenu(文件(F); JMenuItem n=new JMenuItem(新建); JMenuItem open=new JMenuItem(打开(O). Ctrl+O); JMenuItem save=new JMenuItem(保存(S). Ctrl+S); JMenuItem save_as=new JMenuItem(另存为(A).Ctrl+A); JMenuItem exit=new JMenuItem(退出); JMenu m2=new JMenu(编辑(E); JMenuItem copy=new JMenuItem(复制(C) Ctrl+C
4、); JMenuItem cut=new JMenuItem(剪切(X) Ctrl+X); JMenuItem paste=new JMenuItem(粘贴(P) Ctrl+P); JMenu m3=new JMenu(格式(O); JMenu f1=new JMenu(字体(F); JMenuItem i11=new JMenuItem(宋体); JMenuItem i12=new JMenuItem(楷体); JMenuItem i13=new JMenuItem(黑体); JMenu color=new JMenu(颜色(C); JMenuItem i21=new JMenuItem(红
5、); JMenuItem i22=new JMenuItem(蓝); JMenuItem i23=new JMenuItem(绿); JMenu m4=new JMenu(帮助(); JMenuItem about=new JMenuItem(关于);/*定义弹出菜单及其菜单项*/ JPopupMenu pm=new JPopupMenu(); JMenuItem item1=new JMenuItem(复制); JMenuItem item2=new JMenuItem(剪切); JMenuItem item3=new JMenuItem(粘贴);/*编辑区*/ String s; Cont
6、ainer c; JTextArea editor=new JTextArea(s);(4)主要方法说明: JM( )方法创建一个窗口并设置窗口的相应参数,以及把各个项目加到窗上private void addJMenuBar( )方法把各个菜单添加到菜单棒上 private void addFileMenu( ) private void addEditMenu( ) private void addFormMenu( ) private void addHelpMenu( ) private void addJPopupMenu( )各个方法则把相应的菜单项添加到各自的“文件”、“编辑”、
7、“格式”、“帮助”菜单上,及弹出菜单上3.1.2 类名: JM4(1)作用: 主类(2)继承的父类: JM类 (3)主要成员方法说明:编辑区键盘事件:KeyListener类 如果记事本的编辑区内用键盘输入了字符,就能够被程序监听;editor.addKeyListener( new KeyAdapter() public void keyTyped(KeyEvent e)flag=1;);窗口的事件监听:windowListener类;class windowListener extends WindowAdapter public void windowClosing(WindowEven
8、t e) if(flag=0)System.exit(0); else close(); 菜单项的事件监听:ActionListener类;public void actionPerformed(ActionEvent e) Font f2=editor.getFont(); JMenuItem mi=(JMenuItem) e.getSource(); 32 程序流程图3.2.1主流程图3.2.2 “文件”菜单操作流程图 3.2.3 “编辑”菜单操作流程图3.2.4 “格式”菜单操作流程图、3.2.5 弹出菜单操作流程图3.2.6 “帮助”菜单操作流程图4 详细设计41 GUI程序界面设计i
9、mport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*; public class JM extends JFrame JMenuBar mb=new JMenuBar(); /定义一个菜单项 /*定义各个菜单及其菜单项*/ JMenu m1=new JMenu(文件(F); JMenuItem n=new JMenuItem(新建); JMenuItem open=new JMenuItem(打开(O). Ctrl+O); JMenuItem save=new JMenuItem(保存(S)
10、. Ctrl+S); JMenuItem save_as=new JMenuItem(另存为(A).Ctrl+A); JMenuItem exit=new JMenuItem(退出); JMenu m2=new JMenu(编辑(E); JMenuItem copy=new JMenuItem(复制(C) Ctrl+C); JMenuItem cut=new JMenuItem(剪切(X) Ctrl+X); JMenuItem paste=new JMenuItem(粘贴(P) Ctrl+P); JMenu m3=new JMenu(格式(O); JMenu f1=new JMenu(字体(F
11、); JMenuItem i11=new JMenuItem(宋体); JMenuItem i12=new JMenuItem(楷体); JMenuItem i13=new JMenuItem(黑体); JMenu color=new JMenu(颜色(C); JMenuItem i21=new JMenuItem(红); JMenuItem i22=new JMenuItem(蓝); JMenuItem i23=new JMenuItem(绿); JMenu m4=new JMenu(帮助(); JMenuItem about=new JMenuItem(关于);/*定义弹出菜单及其菜单项*
12、/ JPopupMenu pm=new JPopupMenu(); JMenuItem item1=new JMenuItem(复制); JMenuItem item2=new JMenuItem(剪切); JMenuItem item3=new JMenuItem(粘贴); /*编辑区*/ String s; Container c; JTextArea editor=new JTextArea(s); Font t=new Font(sanserif,Font.PLAIN,12); JM() super(记事本); setSize(500,400); tryUIManager.setLoo
13、kAndFeel(UIManager.getSystemLookAndFeelClassName(); catch(Exception e)System.err.println(不能设置外观的原因;+e); c = getContentPane(); c.add(new JScrollPane(editor); addFileMenu(); addEditMenu(); addFormMenu(); addHelpMenu(); addJMenuBar(); addJPopupMenu(); setJMenuBar(mb); setVisible(true); setDefaultCloseO
14、peration(JFrame.EXIT_ON_CLOSE); private void addFileMenu() m1.add(n); m1.add(open); m1.add(save); m1.add(save_as); m1.addSeparator(); m1.add(exit); m1.setFont(t); private void addEditMenu() m2.add(copy); m2.add(cut); m2.addSeparator(); m2.add(paste); m2.setFont(t); private void addFormMenu() m3.add(
15、f1); m3.add(color); m3.setFont(t); f1.add(i11); f1.add(i12); f1.add(i13); color.add(i21); color.add(i22); color.add(i23); private void addHelpMenu() m4.add(about); m4.setFont(t); private void addJMenuBar() mb.add(m1); mb.add(m2); mb.add(m3); mb.add(m4); mb.setBackground(Color.cyan); private void add
16、JPopupMenu() editor.add(pm); pm.add(item1); pm.add(item2); pm.add(item3); public static void main(String arg)new JM(); 42 JM4类的实现import java.io.*; import java.awt.*; import javax.swing.*; import java.awt.event.*;import java.awt.Font.*;public class JM4 extends JM implements ActionListener,MouseListen
17、er/EventListener int flag=0; public JM4()/*监听器接口*/n.addActionListener(this);open.addActionListener(this);save.addActionListener(this);save_as.addActionListener(this);exit.addActionListener(this);copy.addActionListener(this);cut.addActionListener(this);paste.addActionListener(this);i11.addActionListe
18、ner(this);i12.addActionListener(this);i13.addActionListener(this);i21.addActionListener(this);i22.addActionListener(this);i23.addActionListener(this);about.addActionListener(this);item1.addActionListener(this);item2.addActionListener(this);item3.addActionListener(this);editor.addMouseListener(this);
19、addWindowListener(new windowListener();43 事件处理4.3.1 编辑区键盘事件处理/*编辑区键盘事件*/editor.addKeyListener( new KeyAdapter() public void keyTyped(KeyEvent e)flag=1;); 4.3.2 窗口事件处理/*窗口监听器*/ class windowListener extends WindowAdapter public void windowClosing(WindowEvent e) if(flag=0)System.exit(0); else close();
20、4.3.3 菜单项事件处理/*菜单项监听器*/public void actionPerformed(ActionEvent e) Font f2=editor.getFont(); JMenuItem mi=(JMenuItem) e.getSource();if(mi=n) /新建 if(flag=0) editor.setText(); else close2(); if(mi=open) /打开 loadFile();if(mi=save|mi=save_as) /保存和另存为 saveFile(); if(mi=exit) /退出 if(flag=0)System.exit(0);
21、close();if(mi=copy) /复制 editor.copy();if(mi=cut) /剪切 editor.cut();if(mi=paste) /粘贴 editor.paste();if(mi=i11) /字体设置 editor.setFont(new java.awt.Font(宋体,java.awt.Font.PLAIN,f2.getSize(); if(mi=i12) editor.setFont(new java.awt.Font(楷体,java.awt.Font.PLAIN,f2.getSize(); if(mi=i13) editor.setFont(new java
22、.awt.Font(黑体,java.awt.Font.PLAIN,f2.getSize(); if(mi=i21) /字体颜色 editor.setForeground(Color.red); if(mi=i22) editor.setForeground(Color.blue); if(mi=i23) editor.setForeground(Color.green); if(mi=about) /帮助菜单的关于 String message = -记事本-+ 由梁娟老师指导,罗世寿、罗军、刘艳共同完成n感谢您的使用!;JOptionPane.showMessageDialog(JM4.th
23、is, message, 关于.,JOptionPane.PLAIN_MESSAGE); /*弹出菜单*/ if(mi=item1) /复制 editor.copy();if(mi=item2) /剪切 editor.cut(); if(mi=item3) /粘贴 editor.paste(); 4.3.4 编辑区的鼠标事件事件处理/*编辑区的鼠标事件*/public void mouseReleased(MouseEvent e) if(e.isPopupTrigger() pm.show(editor,e.getX(),e.getY(); public void mouseClicked(
24、MouseEvent e)public void mouseEntered(MouseEvent e)public void mouseExited(MouseEvent e)public void mousePressed(MouseEvent e) public static void main (String args) JM4 d=new JM4(); 5 测试分析(1)程序运行界面如下:(2)“文件”菜单的菜单项: (3)“编辑”菜单的菜单项:(4)打开文件及另存文件时的界面:由于打开文件和另存文件都要寻找路径,所以开始时界面相同。(5)打开了某一个文本文件是的截图:(6)设置字体为
25、黑体和颜色为蓝色的截图:(7)用弹出菜单实现复制、剪切、粘贴、的截图:(8) 记事本关闭、退出或新建时的截图:当文件发生了剪切、删除、粘贴等操作,或者在编辑区中输入了字符,即文件进行了修改,当点击“文件”菜单中的“退出”项或者点击了窗口的关闭按钮时,就会弹出一个“保存文件?”的对话框。如果文件没有发生修改,关闭或者退出时,直接关闭了记事本程序。由于其他的操作在截图里很难发现什么变化,所以只展示了上面的截图。6 课程设计总结6.1 设计体会6.2 致谢在这次课程设计中,很感谢*老师的指导,将我从对于JAVA肤浅的认识引入到深层次的分析理解。还感谢我们的任课老师*老师,由于她的悉心教导,我能用Ja
26、va这一种语言进行比较熟练的编程。还感谢和我一起做这次课程设计的组员* *,由于我们的通力合作,这次课程设计得以顺利的完成。参考文献1 孙全党,王吴迪,赵枫朝Java程序设计应用教程M北京:电子工业出版社,20062 雷之宇Java项目开发实践网络篇M北京:中国铁道出版社,20053 赵玉阳Java从入门到精通M北京:清华大学出版社,2006 4 李龙怡Java编程实例讲解M北京:高等教育出版社,20055 李尊朝,苏军Java语言程序设计M北京:中国铁道出版社,2009附录(源程序清单)import java.awt.*;import java.awt.event.*;import java
27、x.swing.*;import java.io.*; public class JM extends JFrame JMenuBar mb=new JMenuBar(); /定义一个菜单项 /*定义各个菜单及其菜单项*/ JMenu m1=new JMenu(文件(F); JMenuItem n=new JMenuItem(新建); JMenuItem open=new JMenuItem(打开(O). Ctrl+O); JMenuItem save=new JMenuItem(保存(S). Ctrl+S); JMenuItem save_as=new JMenuItem(另存为(A).Ct
28、rl+A); JMenuItem exit=new JMenuItem(退出); JMenu m2=new JMenu(编辑(E); JMenuItem copy=new JMenuItem(复制(C) Ctrl+C); JMenuItem cut=new JMenuItem(剪切(X) Ctrl+X); JMenuItem paste=new JMenuItem(粘贴(P) Ctrl+P); JMenu m3=new JMenu(格式(O); JMenu f1=new JMenu(字体(F); JMenuItem i11=new JMenuItem(宋体); JMenuItem i12=new JMenuItem(楷体); JMenuItem i13=new JMenuItem(黑体); JMenu color=new JMenu(颜色(C); JMenuItem i21=new JMenuItem(红); JMenuItem
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1