java课程设计简单记事本
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java 期末测试
制作人:学号:************
班级:12级计算机应用技术1班
一、分析与设计
1. 分析
现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。
2. 功能模块划分
程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:
第一部分菜单栏
(1)菜单中有“文件”,“编辑”,“格式”三个主菜单。
(2)“文件”有“打开”“保存”“退出”三个子菜单:分别用于打开文件,保存文件,退出记事本。
(3)“编辑”中有“剪切”“复制”“粘贴”三个子菜单:用于剪切文字,复制文字,粘贴文字操作。
(4)“格式”中有“自动换行”,“取消自动换行”,“断行不断字”,“取消断行不断字”四个子菜单,分别用于设置是否自动换行等。
设计右键操作,方便用户进行一系列的编辑操作,增强本记事本的用户体验性能。
二、各模块的关键代码
1、菜单栏
文件菜单
mb = new JMenuBar(); //创建菜单棒
fileMenu = new JMenu("文件(F)");//创建菜单
fileMenuOpen = new JMenuItem("打开(O)...Ctrl+O");
fileMenuSave = new JMenuItem("保存(S)...Ctrl+S");
fileMenuExit = new JMenuItem("退出");
JMHandler JM=new JMHandler(); //创建监听器
fileMenuOpen.addActionListener(JM); //注册监听器
fileMenuSave.addActionListener(JM);
fileMenuExit.addActionListener(JM);
fileMenu.add(fileMenuOpen);
fileMenu.add(fileMenuSave);
fileMenu.addSeparator(); //添加分隔线
fileMenu.add(fileMenuExit);
fileMenu.setFont(f); //设置菜单中文体的字体
编辑菜单
editMenu = new JMenu("编辑(E)");
editMenuCopy = new JMenuItem("复制(C) Ctrl+C");
editMenuCut = new JMenuItem("剪切(T) Ctrl+X");
editMenuPaste = new JMenuItem("粘贴(P) Ctrl+v");
EMHandler EM=new EMHandler(); //创建监听器
editMenuCopy.addActionListener(EM);//注册监听器
editMenuCut.addActionListener(EM);
editMenuPaste.addActionListener(EM);
editMenu.add(editMenuCopy);
editMenu.add(editMenuCut);
editMenu.add(editMenuPaste);
editMenu.setFont(f);
格式菜单
formatMenu = new JMenu("格式(O)"); //创建菜单
formatSet = new JMenu("格式设置"); //二级菜单
lineWrap = new JMenuItem("自动换行"); //二级菜单项cancleLineWrap = new JMenuItem("取消自动换行");
wrapStyleWord = new JMenuItem("断行不断字"); cancleWrapStyleWord = new JMenuItem("取消断行不断字"); FMHandler FM=new FMHandler(); //创建事件监听器lineWrap.addActionListener(FM); //注册二级菜单项的监听器cancleLineWrap.addActionListener(FM);
wrapStyleWord.addActionListener(FM);
cancleWrapStyleWord.addActionListener(FM);
formatSet.add(lineWrap);
formatSet.add(cancleLineWrap);
formatSet.addSeparator(); //添加分隔线
formatSet.add(wrapStyleWord);
formatSet.add(cancleWrapStyleWord);
formatMenu.add(formatSet);
formatMenu.setFont(f);
工具栏
toolBar =new JToolBar(); //创建工具棒
b1= new JButton(new ImageIcon("img/open.gif"));
b2= new JButton(new ImageIcon("img/save.gif"));
b3= new JButton(new ImageIcon("img/copy.gif"));
b4= new JButton(new ImageIcon("img/cut.gif"));
b5= new JButton(new ImageIcon("img/paste.gif")); TBHandler TB=new TBHandler(); //创建按钮监听器
b1.addActionListener(TB); b2.addActionListener(TB);
b3.addActionListener(TB); b4.addActionListener(TB);
b5.addActionListener(TB);
//把按钮全部添加到工具棒中
toolBar.add(b1); toolBar.add(b2);
toolBar.add(b3); toolBar.add(b4);
toolBar.add(b5);
弹出菜单
pm =new JPopupMenu(); //创建弹出菜单
item1 = new JMenuItem("打开");
item2 = new JMenuItem("保存");
item3 = new JMenuItem("复制");
item4 = new JMenuItem("剪切");
item5 = new JMenuItem("粘贴");
JPHandler JP=new JPHandler();
item1.addActionListener(JP); //注册菜单项的鼠标事件监听器item2.addActionListener(JP);
item3.addActionListener(JP);
item4.addActionListener(JP);
item5.addActionListener(JP);
editor.addMouseListener(JP); //注册文本区的鼠标事件监听器pm.add(item1); pm.add(item2);
pm.add(item3); pm.add(item4);
pm.add(item5);
2、自定义类实现文件菜单项的事件处理
private class JMHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==fileMenuOpen){ loadFile(); }
else if(e.getSource()==fileMenuSave){ saveFile(); }
else{System.exit(0);}