1、下面我们就来看看记事本吧。相对于微软的Word来说“记事本”的功能确实是太单薄了,只有:新建,保存,打印,查找,替换这几个功能。但是“记事本”却拥有一个Word不可能拥有的优点:打开速度快,文件小。我相信对于这一点大家一定是深有感触地,一点就打开;同样的文本文件用Word保存和用记事本保存的文件大小就大不相同,所以对于大小在64KB以下的纯文本的保存最好还是采用记事本。记事本另一项不可取代的功能是:可以保存无格式文件。你可以把记事本编辑的文件保存为:“.html”, “.java”,“.asp”等等任意格式。这使得“记事本”又找到了一个新的用途:作为程序语言的编辑器。翻开任何一本介绍一门编程语
2、言的入门教材,里面都会建议学生在记事本中编写源程序。记事本使用的一个老窍门,在记事本文件的开头输入:“.LOG”之后你每次打开这个文件就会在自动的纪录下文本打开的时间。 2.2 记事本的任务及目的 打开计算本窗口,在编辑区进行文本的输入,可以使用剪切、拷贝、粘贴等功能键,当文本输入完毕后点击“文件”菜单,选择下拉菜单中的“保存文本”打开“保存”窗口,选择保存文件的根目录进行保存。当需要关闭窗口时可通过“文件”菜单下的“退出系统”选项,或者选择“工具栏”中的“退出系统”按钮,也可以直接点击窗口右上角的关闭图标进行关闭。2.3 本章小结记事本是一种只能处理纯文本的文件。可以通过菜单栏和工具栏实现以
3、下功能:如文件的新建,打开,保存和退出;对文件的编辑,如复制,剪切,粘贴;以及帮助菜单;执行完操作后,能够顺利关闭记事本。第3章 记事本的设计这一章时进销存管理系统的设计,从系统需求分析开始,介绍开发环境和用到的开发工具,系统主要的功能设计,系统的数据流程图。3.1 系统需求分析记事本的设计目标为:3.2记事本总体结构(流程图) 图3.1 系统功能结构图3.3 记事本系统各模块介绍系统各功能模块实现的功能为:新建记事本:在文件的下拉菜单中点击新建文本或单击工具栏中的新建文本,将文本刷新。打开原有的记事本:在文件的下拉菜单中点击打开文本或单击工具栏中的打开文本,再选中原有的记事本,单击打开按钮,
4、便将原有文本打开。拷贝:先选中需复制的文本,在编辑的下拉菜单中点击拷贝或单击工具栏中的拷贝,便将所选文本复制了。粘贴:在编辑的下拉菜单中点击粘贴或单击工具栏中的粘贴,便将所复制的文本粘贴到需粘贴的地方。剪贴:先选中需剪贴的文本,在编辑的下拉菜单中点击剪贴或单击工具栏中的剪贴,便将所选文本剪贴了。保存:在文件的下拉菜单中点击保存文本或单击工具栏中的保存文本,便将改变的文本保存好。退出系统:在文件的下拉菜单中点击退出系统或单击工具栏中的退出系统,或直接点击状态栏中的,从而关闭文本。3.4 本章小结本章介绍了该记事本的运行环境,以及各功能的体现。第4章 系统的具体实现界面是系统之间最直接的交互界面,
5、界面的友好性体现了软件设计的质量, 并在很大程度上决定了软件是否成功。4.1窗口设计 在主接口中设计一个EditorDemo容器继承自JFrame,并在其中加入菜单栏、工具栏和一个文本域控件。public class EditorDemo extends JFrameJTextPane textPane = new JTextPane(); /创建文本窗格,编辑窗口JFileChooser filechooser = new JFileChooser(); /文件选择器setJMenuBar(createJMenuBar(actions); /设置菜单栏Container container
6、= getContentPane(); /得到容器 container.add(createJToolBar(actions), BorderLayout.NORTH); /工具栏container.add(textPane, BorderLayout.CENTER); /增加文本窗格窗口设计流程图:图4.1 窗口模块框图4.2程序功能设计及调试运行 利用JSP“一次编写,各处运行”的编程优点,按功能模块结构设计菜单,布置各明细模块工作界面,编写各个模块的程序代码,进行编译连接运行,经过反复调试修改,以达到系统功能要求。这个过程具有大量的工作量,应仔细对每个程序细节进行分析思考、编写程序并调试
7、,做到程序简洁清楚,尽量避免可能潜在的程序错误,并在必要的地方加以注释,以便于程序阅读和修改。4.2.1在下拉菜单中加入子菜单并进行监听,分别实现对文件的操作功能。点击不同菜单项时,显示不同接口。部分代码:private JMenuBar createJMenuBar(Action actions) /创建菜单栏 JMenuBar menubar = new JMenuBar(); /实例化菜单栏 JMenu menuFile = new JMenu(文件(F); /实例化菜单 JMenu menuEdit = new JMenu(编辑(E) JMenu menuFormat = new JM
8、enu(格式(O) JMenu menuFind = new JMenu(查找(V) JMenu menuAbout = new JMenu(帮助(H) menuFile.add(new JMenuItem(actions0); /增加新菜单项 menuFile.add(new JMenuItem(actions1); menuFile.add(new JMenuItem(actions2); menuFile.addSeparator(); menuFile.add(new JMenuItem(actions7); menuEdit.add(new JMenuItem(actions3);
9、menuEdit.add(new JMenuItem(actions4); menuEdit.add(new JMenuItem(actions5); menuAbout.add(new JMenuItem(actions6); menubar.add(menuFile); /增加菜单 menubar.add(menuEdit); menubar.add(menuFormat); menubar.add(menuFind); menubar.add(menuAbout); return menubar; /返回菜单栏实现对文件的操作功能流程图:图4.2 实现操作功能框图如下图:图4.2.1 文
10、件菜单功能生成界面图4.2.2编辑菜单功能生成界面图4.2.3 帮助菜单功能生成界面4.2.2加入工具栏的功能键,通过工具栏实现对文本的基本操作。关键代码: Action actions = /Action数组,各种操作命令 new NewAction(), new OpenAction(), new SaveAction(), new CutAction(), new CopyAction(), new PasteAction(), new AboutAction(), new ExitAction(),private JToolBar createJToolBar(Action actio
11、ns) /创建工具条 JToolBar toolBar = new JToolBar(); /实例化工具条 JButton bt = new JButton(actionsi); /实例化新的按钮 toolBar.add(bt); /增加按钮到工具栏如图所示:4.2.3对每个菜单项进行注册监听。点击不同功能键时,实现不同的操作,显示不同的窗口。 主要实现方法代码如下:class NewAction extends AbstractAction /实现新建文件命令功能 public NewAction() super(新建文本 public void actionPerformed(Action
12、Event e) textPane.setDocument(new DefaultStyledDocument(); /清空文档 class OpenAction extends AbstractAction /实现打开文件命令功能 public OpenAction() 打开文本 int i = filechooser.showOpenDialog(EditorDemo.this); /显示打开文件对话框 if (i = JFileChooser.APPROVE_OPTION) /点击对话框中打开选项 File f = filechooser.getSelectedFile(); /得到选择
13、的文件 try InputStream is = new FileInputStream(f); /得到文件输入流 textPane.read(is, d /读入文件到文本窗格 catch (Exception ex) ex.printStackTrace(); /输出出错信息 图4.2.4 打开文件生成界面class SaveAction extends AbstractAction /实现保存文本命令 public SaveAction() 保存文本 int i = filechooser.showSaveDialog(EditorDemo.this);/显示保存文件对话框 if (i =
14、 JFileChooser.APPROVE_OPTION) /点击对话框中保存按钮 try FileOutputStream out = new FileOutputStream(f);/得到文件输出流 out.write(textPane.getText().getBytes(); /写出文件 /输出出错信息 图4.3.1 保存文件生成界面class ExitAction extends AbstractAction /实现退出命令 public ExitAction() 退出系统 System.exit(0); /退出程序class CutAction extends AbstractAc
15、tion /实现剪切命令 public CutAction() 剪切 textPane.cut(); /调用文本窗格的剪切命令class CopyAction extends AbstractAction /实现拷贝命令 public CopyAction() 拷贝 public void actionPerformed(ActionEvent e) textPane.copy(); /调用文本窗格的拷贝命令class PasteAction extends AbstractAction /实现粘贴命令public PasteAction() 粘贴 textPane.paste(); /调用文
16、本窗格的粘贴命令class AboutAction extends AbstractAction /关于版本命令 public AboutAction() 版本String str=记事本n版本:1.0n n主要功能:实现简单文本编辑。 JOptionPane.showMessageDialog(EditorDemo.this, str); /显示软件信息图4.2.5 显示版本界面生成图类向导等功能。第一次启动时提示设置JavaJDK主目录及JDKJavaDoc目录,软件自动设置好类路径、编译器及解释器路径,还可以在帮助菜单中使用JDKHelp。4.2.5 系统调试分析 1:窗口调试确定主窗体
17、,设置主窗体的属性,对窗体进行布局,加入所需控件并对控件进行初始化。在完成所有方法的源代码编辑后,对程序进行编译、运行!会出现窗体如下图:图4.2.6 编译运行程序生成界面2:功能调试对所有菜单项进行注册监听。在编写触发事件时执行各项操作,包括了一些常用部分的事件处理,实现各功能键的操作。例如 当点击“文件“按钮是显示如下窗口:图4.2.7 文件按钮实现生成界面当需要打开已存在的文件时,点击“打开文本”按钮会出现如下窗口:图4.2.8 打开文件按钮实现生成界面当输入完文本是要保存的话,点击“保存文本”会出现下面的窗口:图4.2.9 输入文本界面 图4.2.10 保存文本界面依次调试其他功能键及
18、窗口,直至达到符合要求的能实现简易的记事本的功能!4.3 本章小结本章介绍了系统的具体实现和部分关键代码,其中包括如何实现新建文件,打开文件,保存文件,退出系统以及剪切,拷贝,粘贴等具体操作。第5章 改进部分5.1加登陆界面 5.1.1登陆界面设计用户登陆界面图如图如图5.1.1和图5.1.2所示:图5.1.1 用户登录模块框图图5.1.2 用户登陆界面LoginIn的作用是检测用户登陆的合法性,并确认用户输入了合法的登录名和口令 class LoginIn extends JFrame EditorDemo edit; LoginIn login; JTextField f1; JTextF
19、ield f2; JButton b1; JButton b2; String power;/ 表示权限 String imgePath = e:/workspace/GUI/14.gif; JPanel p5; Image img = Toolkit.getDefaultToolkit().createImage(imgePath); LoginIn(EditorDemo edit) this.edit = edit; login = this; Container cp = getContentPane(); Label l1 = new Label(用户: Label l2 = new
20、Label(密码: JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); JPanel p3 = new JPanel(); JPanel p4 = new JPanel(); p5 = new JPanel() protected void paintChildren(Graphics g) g.drawImage(img, 0, 0, this); super.paintChildren(g); ; f1 = new JTextField(15); f2 = new JPasswordField(15); b1 = new JButton(
21、登录 b2 = new JButton(重置 p1.setBackground(Color.orange); p2.add(l1); p2.add(f1); p2.setBorder(new MatteBorder(0, 0, 0, 0, Color.BLACK); p2.setBackground(Color.ORANGE); p3.add(l2); p3.add(f2); p3.setBackground(Color.ORANGE); p3.setBorder(new MatteBorder(0, 0, 0, 0, Color.BLACK); p4.add(b1); p4.add(b2);
22、 p4.setBorder(new MatteBorder(-3, -3, -3, -3, Color.CYAN); p4.setBackground(Color.ORANGE); p5.setLayout(new FlowLayout(FlowLayout.CENTER, 20, 20); p5.add(p2); p5.add(p3); p5.add(p4); cp.add(p5, BorderLayout.CENTER); b1.addActionListener(new Enter(); b2.addActionListener(new ReWrite(); addWindowListe
23、ner(new winClose(); class Enter implements ActionListener if (f1.getText().equals(admin) & (f2.getText().equals(123) JOptionPane.showMessageDialog(null, 登录成功!用户权限是adimistrator power = adminstrator login.setVisible(false); edit.setVisible(true); else if (f1.getText().equals(snake) &123456登录成功!用户权限是user else登录失败,请重新登录! class ReWrite implements ActionListener f1.setText( f2.setText( f1.requestFocus(); class winClose extends WindowAdapter public void windowClosing(WindowEvent e) (e.getWindow().dispose();5.1.2 系统主界面登陆成功界面:图5.2登陆成功界面登陆成功后弹出记事
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1