Java程序设计实验2(编辑器)报告_第1页
Java程序设计实验2(编辑器)报告_第2页
Java程序设计实验2(编辑器)报告_第3页
Java程序设计实验2(编辑器)报告_第4页
Java程序设计实验2(编辑器)报告_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、中南民族大学计算机科学学院Java程序设计实验二报告20142015第二学期课程名称: Java程序设计 院 系: 计算机科学学院 年 级: 2013 专 业: 计算机科学与技术 班 级: 1大班 小组成员(学号姓名): 5 高波 1王吉 5 锁松源 指导教师: 强小利 2015年6月实验二 Java 文本编辑器编程1. 实验类型:综合型2. 实验目的(1)进一步熟悉Java集成开发环境NetBeans(Eclipse、MyEclipse)的使用;(2)进一步熟练掌握Java Application的编写及调试;(3)进一步掌握Java图形用户界面的设计及其编程;(4)进一步熟练掌握Java的

2、事件委托处理模型;(5)进一步熟练掌握java.awt包、javax.swing包常用类的使用;(6)进一步熟练掌握Java的封装、继承和多态程序设计;(7)掌握Java流类的使用和文件读写程序设计;(8)掌握Java异常处理程序设计。3. 实验任务利用Java编程技术实现一个简单的文本编辑器,具体要求如下:(1)编写一个Java Application,使得程序能提供文本编辑器的常用功能;(2)使用javax.swing.JFrame创建一个窗框。(3)为文本编辑器添加菜单栏JmenuBar;(4)在菜单栏中添加基本的菜单Jmenu,菜单栏上必须有文件、编辑、查找、帮助等菜单;(5)为每个菜

3、单添加必要的菜单项JMenuItem和复选菜单项JcheckboxMenuItem;(6)为每个菜单项注册监听器;(7)为常用的文件功能和编辑功能建立工具栏;以下为选做功能:(8)建立基本的格式工具栏;(9)多文档编辑功能。4. 组内分工(说明每个成员分工的编程工作)(1)界面设计以及各种菜单的设计:锁松源(2)文件打开与保存:高波(3)查找与替换功能:王吉5. Java源代码import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;import javax.swing.filechooser

4、.FileNameExtensionFilter;public class Text extends JFrame implements ActionListenerprivate JTextAreaA;private JMenuBarMenuBar;/菜单条private JMenuFile,Eidt,Fo,color,mHelp;/菜单/子菜单private JMenuItemOpen,Save,New,Close;private JMenuItemCut,Copy,Paste,Selct;private JMenuItemSearch;private JMenuItemBOLD,PLAI

5、N,ITALIC;private JMenuItemred, blue, green, yellow;private JMenuItemHelp;private JFileChooserchooser;private Fontfont;public static void main(String args)new Text();public Text()super(文本编辑器);A = new JTextArea(5, 30);A.setLineWrap(true);this.add(A, BorderLayout.CENTER);Container mContainer = getConte

6、ntPane();JScrollPane scrollPane = new JScrollPane(A);/滚动条mContainer.add(scrollPane);MenuBar = new JMenuBar();New = new JMenuItem(新建);File = new JMenu(文件);Open = new JMenuItem(打开);Save = new JMenuItem(保存);Close = new JMenuItem(关闭);File.add(New);File.add(Open);File.add(Save);File.addSeparator();File.a

7、dd(Close);MenuBar.add(File);New.addActionListener(this);Open.addActionListener(this);Save.addActionListener(this);Close.addActionListener(this);Eidt = new JMenu(编辑);Cut = new JMenuItem(剪切 (Ctrl+X);Copy = new JMenuItem(复制 (Ctrl+C);Paste = new JMenuItem(粘贴 (Ctrl+V);Selct = new JMenuItem(全选 (Ctrl+A);Se

8、arch = new JMenuItem(查找与替换);Copy.addActionListener(this);Paste.addActionListener(this);Cut.addActionListener(this);Selct.addActionListener(this);Search.addActionListener(this);Eidt.add(Copy);Eidt.add(Paste);Eidt.add(Cut);Eidt.add(Selct);Eidt.add(Search);MenuBar.add(Eidt);Fo = new JMenu(字体);PLAIN = n

9、ew JMenuItem(常规);BOLD = new JMenuItem(粗体);ITALIC = new JMenuItem(斜体);BOLD.addActionListener(this);PLAIN.addActionListener(this);ITALIC.addActionListener(this);Fo.add(PLAIN);Fo.add(BOLD);Fo.add(ITALIC);MenuBar.add(Fo);color = new JMenu(颜色);red = new JMenuItem(红色);blue = new JMenuItem(蓝色);green = new

10、JMenuItem(绿色);yellow = new JMenuItem(黄色);red.addActionListener(this);blue.addActionListener(this);green.addActionListener(this);yellow.addActionListener(this);color.add(red);color.add(blue);color.add(green);color.add(yellow);MenuBar.add(color);mHelp = new JMenu(帮助);Help = new JMenuItem(关于);mHelp.add

11、(Help);mHelp.addActionListener(this);MenuBar.add(mHelp);this.setJMenuBar(MenuBar);this.setSize(600, 400);this.setVisible(true);this.setLocation(100, 50);Overridepublic void actionPerformed(ActionEvent e)JMenuItem i = (JMenuItem) e.getSource();if (i.equals(Open)openFile();else if (i.equals(Save)saveF

12、ile();else if (i.equals(New)newFile();else if (i.equals(Close)Close();else if (i.equals(Cut)A.cut();else if (i.equals(Copy)A.copy();else if (i.equals(Paste)A.paste();else if (i.equals(Selct)A.selectAll();else if (i.equals(Search)new Search();else if (i.equals(PLAIN)font = new Font(宋体, Font.PLAIN, 16

13、);A.setFont(font);else if (i.equals(BOLD)font = new Font(宋体, Font.BOLD, 16);A.setFont(font);else if (i.equals(ITALIC)font = new Font(宋体, Font.ITALIC, 16);A.setFont(font);else if (i.equals(red)A.setForeground(Color.red);else if (i.equals(blue)A.setForeground(Color.blue);else if (i.equals(green)A.setF

14、oreground(Color.GREEN);else if (i.equals(yellow)A.setForeground(Color.yellow);else if (i.equals(Help)Help();/新建public void newFile()A.setText( );this.setTitle(新建文件);public void openFile()chooser = new JFileChooser();/ 新建文件选择器对话框对象FileNameExtensionFilter filter = new FileNameExtensionFilter(TXT,txt);

15、/ 建立过滤器chooser.setFileFilter(filter);/ 开始过滤chooser.setCurrentDirectory(new File(C:);/ 设置默认的打开目录chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);/ 设置打开文件类型int m = chooser.showOpenDialog(Open);/ 弹出一个 Open File 文件选择器对话框if (m = JFileChooser.APPROVE_OPTION)File file = chooser.getSelectedFile();tryFi

16、leReader reader = new FileReader(file);int len = (int) file.length();char array = new charlen;reader.read(array, 0, len);reader.close();A.setText(new String(array); catch (Exception e_open)/错误提示JOptionPane.showMessageDialog(Save, 文件未找到!);public void saveFile()chooser = new JFileChooser();FileNameExt

17、ensionFilter filter = new FileNameExtensionFilter(TXT,txt);/ 建立过滤器,只显示.txt文件chooser.setFileFilter(filter);/ 开始过滤chooser.setCurrentDirectory(new File(C:);/ 设置默认的打开目录chooser.setSelectedFile(new File(新建文件夹.txt);int m = chooser.showSaveDialog(Save);if (m = JFileChooser.APPROVE_OPTION)File file = chooser

18、.getSelectedFile();if (file.exists()int copy = JOptionPane.showConfirmDialog(null, 是否要覆盖当前文件?,保存, JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);if (copy = JOptionPane.YES_OPTION)tryFileWriter writer = new FileWriter(file);writer.write(A.getText();writer.close(); catch (Exception e_save)JOp

19、tionPane.showMessageDialog(Save, 写入错误);elsetryFileWriter writer = new FileWriter(file);writer.write(A.getText();writer.close(); catch (Exception e_save)JOptionPane.showMessageDialog(Save, 写入错误);public void Close()if (A.getText().isEmpty()System.exit(0);elseswitch (JOptionPane.showConfirmDialog(this,

20、 是否保存当前文档?)case JOptionPane.YES_OPTION:saveFile();break;case JOptionPane.NO_OPTION:System.exit(0);break;case JOptionPane.CANCEL_OPTION:break;public void Help()JOptionPane.showMessageDialog(A, 文本编辑器 + n + 王吉、高波、锁松源版权所有);/查找替换public class Search extends JFrame implements ActionListenerprivate JTextFie

21、ldtextField1, textField2;private JButtonstartButton, reallButton, replaceButton;private JLabellabel1, label2;private JPanelpanel1, panel2;Stringvalue;intstart= 0;public Search()super(查找与替换);textField1 = new JTextField(15);textField2 = new JTextField(15);startButton = new JButton(开始查找);startButton.ad

22、dActionListener(this);replaceButton = new JButton(替换为);replaceButton.addActionListener(this);reallButton = new JButton(全部替换);reallButton.addActionListener(this);value = A.getText();label1 = new JLabel(查找内容:);label2 = new JLabel(替换为:);panel1 = new JPanel();panel1.setLayout(new GridLayout(2, 2);panel2

23、 = new JPanel();panel2.setLayout(new GridLayout(1, 3);this.add(panel1, BorderLayout.NORTH);this.add(panel2, BorderLayout.CENTER);panel1.add(label1);panel1.add(textField1);panel1.add(label2);panel1.add(textField2);panel2.add(startButton);panel2.add(replaceButton);panel2.add(reallButton);this.setLocat

24、ion(300, 300);this.pack();/调整此窗口的大小,以适合其子组件的首选大小和布局this.setVisible(true);Overridepublic void actionPerformed(ActionEvent e)JButton j = (JButton) e.getSource();if (j.equals(startButton) | j.equals(下一个)String temp = textField1.getText();int s = value.indexOf(temp, start);/从文本域中查找textField1中的字符串,从start

25、个字符开始查询,返回textField1首字符的索引if (s!= -1)A.setSelectionStart(s);A.setSelectionEnd(s + temp.length();A.setSelectedTextColor(Color.GREEN);start = s + temp.length();startButton.setText(下一个);elseJOptionPane.showMessageDialog(A, 查找完毕);else if (j.equals(replaceButton)/替换A.replaceSelection(textField2.getText();else if (j.

温馨提示

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

评论

0/150

提交评论