JAVVA程序设计报告.doc_第1页
JAVVA程序设计报告.doc_第2页
JAVVA程序设计报告.doc_第3页
JAVVA程序设计报告.doc_第4页
JAVVA程序设计报告.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java记事本程序设计报告 学院:经济与管理 专业:信息管理与信息系统 姓名:广播剧 学号:4556566 日期:2013年5月28号一 程序设计思路在本程序中,设计了一个菜单栏和文本内容区。设计过程中用到了JMenuBar,JMenu,JMenuItem,JTextArea等。JMenu 用来制作菜单。JTextArea主要用来制作文本。动作执行主要思路就是利用ActionListener接口为每一个JMenuItem设置ActionCommand名称然后再actionPerformed方法中判断执行动作。二功能模块划分程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:第一部分 菜单栏(1)菜单中有“文件”,“编辑”,“设置”,“关于”四个主菜单。(2)“文件”有“打开”“保存”“退出”三个子菜单:分别用于打开文件,保存文件,退出记事本。(3)“编辑”中有“撤销”,“恢复”,“剪切”“复制”“粘贴”“剪贴”,“删除”六个子菜单:用于剪切文字,复制文字,粘贴文字等一系列操作。(4)“设置”中有“自动换行”,“字体颜色”,“恢复设置”三个子菜单,分别用于设置是否自动换行,字体颜色等。(5)“关于”菜单中有关于记事本程序的制作日期,作者等信息第二部分 文本输入区 用到了“JTextArea”,给用户输入文字.第三部分 状态栏 此栏主要功能是显示出字符总长、总行数、当前行、当前列。第四部分 右键菜单此部分为用户设计右键操作,方便用户进行一系列的编辑操作,增强本记事本的用户体验性能。三功能模块流程图note构造方法新建初始化容器组件初始化初始化菜单栏文字输入区文件编辑格式查看帮助打开保存退出等撤销粘贴等剪切复制自动换行字体状态栏帮助关于添加事件监听 四程序部分源代码及注释import java.awt.*; /包含用于创建用户界面和绘制图形图像的所有类import java.awt.event.*; /提供处理由 AWT 组件所激发的各类事件的接口和类。import java.text.*; /提供以与自然语言无关的方式来处理文本、日期、数字和消息的类和接口。import java.util.*; /包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。import java.io.*; /通过数据流、序列化和文件系统提供系统输入和输出。import javax.swing.*; /提供一组“轻量级”(全部是 Java 语言)组件,尽量让这些组件在所有平台上的工作方式都相同。import javax.swing.event.*; /供 Swing 组件触发的事件使用。JMenu /定义菜单JMenuItem /菜单中项的实现JMenuBar /菜单栏的实现。将 JMenu 对象添加到菜单栏以构造菜单。JCheckBoxMenuItem /可以被选定或取消选定的菜单项。如果被选定,菜单项的旁边通常会出现一个复选标记。如果未被选定或被取消选定,菜单项的旁边就没有复选标记JtextArea /JTextArea 是一个显示纯文本的多行区域。JLabel /用于短文本字符串或图像或JScrollPane scroll = new JScrollPane(ta);/添加文本区滚动区scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);/滚动条scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); container.add(scroll, BorderLayout.CENTER);/设置滚动条布局m21=new JMenuItem(撤销(U),U);/设置子菜单初始化m21.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK);/设置子菜单快捷方式可用m2.add(m21);/向菜单中添加m21.setEnabled(false);/设置子菜单当前不可用m21.setActionCommand(撤销);/设置子菜单按钮名称m21.addActionListener(this);/监听子菜单事件public void actionPerformed(ActionEvent e) / 实现ActionListener的事件处理方法由于程序中多处会用到保存所以就建立了个一个保存方法方便调用public void saveFile() save.setVisible(true);try File f1=new File(save.getDirectory(),save.getFile(); FileWriter fw=new FileWriter(f1); BufferedWriter bw=new BufferedWriter(fw); String gt=ta.getText(); bw.write(gt,0,gt.length(); bw.flush(); fw.close(); t1=ta.getText();this.opath=f1.getPath(); catch ( Exception e2) 本程序中重点的方法/查找替换-public void mySearch() final JDialog findDialog = new JDialog(this, 查找与替换, true);Container con = findDialog.getContentPane();con.setLayout(new FlowLayout(FlowLayout.LEFT);JLabel searchContentLabel = new JLabel(查找内容(N) :);JLabel replaceContentLabel = new JLabel(替换为(P) :);final JTextField findText = new JTextField(22);final JTextField replaceText = new JTextField(22);final JCheckBox matchcase = new JCheckBox(区分大小写);JButton searchNext = new JButton(查找下一个(F);JButton replace = new JButton(替换(R);final JButton replaceAll = new JButton(全部替换(A);searchNext.setPreferredSize(new Dimension(110, 22);replace.setPreferredSize(new Dimension(110, 22);replaceAll.setPreferredSize(new Dimension(110, 22);/ 替换按钮的事件处理replace.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) if (replaceText.getText().length() = 0 & ta.getSelectedText() != null)ta.replaceSelection();if (replaceText.getText().length() 0 & ta.getSelectedText() != null)ta.replaceSelection(replaceText.getText(););/ 替换全部按钮的事件处理replaceAll.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) ta.setCaretPosition(0); / 将光标放到编辑区开头int a = 0, b = 0, replaceCount = 0;if (findText.getText().length() = 0) JOptionPane.showMessageDialog(findDialog, 请填写查找内容!, 提示, JOptionPane.WARNING_MESSAGE);findText.requestFocus(true);return;while (a -1) int FindStartPos = ta.getCaretPosition();String str1, str2, str3, str4, strA, strB;str1 = ta.getText();str2 = str1.toLowerCase();str3 = findText.getText();str4 = str3.toLowerCase();if (matchcase.isSelected() strA = str1;strB = str3; else strA = str2;strB = str4;if (ta.getSelectedText() = null) a = strA.indexOf(strB, FindStartPos); else a = strA.indexOf(strB, FindStartPos - findText.getText().length() + 1);if (a -1) ta.setCaretPosition(a);b = findText.getText().length();ta.select(a, a + b); else if (replaceCount = 0) JOptionPane.showMessageDialog(findDialog, 找不到您查找的内容!, 记事本, JOptionPane.INFORMATION_MESSAGE); else JOptionPane.showMessageDialog(findDialog, 成功替换 + replaceCount + 个匹配内容!, 替换成功, JOptionPane.INFORMATION_MESSAGE);if (replaceText.getText().length() = 0 & ta.getSelectedText() != null) ta.replaceSelection();replaceCount+;if (replaceText.getText().length() 0 & ta.getSelectedText() != null) ta.replaceSelection(replaceText.getText();replaceCount+;/ end while); /* 替换全部按钮的事件处理结束 */ 查找下一个按钮事件处理searchNext.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) int a = 0, b = 0;int FindStartPos = ta.getCaretPosition();String str1, str2, str3, str4, strA, strB;str1 = ta.getText();str2 = str1.toLowerCase();str3 = findText.getText();str4 = str3.toLowerCase();/ 区分大小写的CheckBox被选中if (matchcase.isSelected() strA = str1;strB = str3; else strA = str2;strB = str4;if (ta.getSelectedText() = null) a = strA.indexOf(strB, FindStartPos); else a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论