Java程序设计实验报告文本编辑器的设计与实现.docx

上传人:小飞机 文档编号:3159674 上传时间:2023-03-11 格式:DOCX 页数:12 大小:39.56KB
返回 下载 相关 举报
Java程序设计实验报告文本编辑器的设计与实现.docx_第1页
第1页 / 共12页
Java程序设计实验报告文本编辑器的设计与实现.docx_第2页
第2页 / 共12页
Java程序设计实验报告文本编辑器的设计与实现.docx_第3页
第3页 / 共12页
Java程序设计实验报告文本编辑器的设计与实现.docx_第4页
第4页 / 共12页
Java程序设计实验报告文本编辑器的设计与实现.docx_第5页
第5页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Java程序设计实验报告文本编辑器的设计与实现.docx》由会员分享,可在线阅读,更多相关《Java程序设计实验报告文本编辑器的设计与实现.docx(12页珍藏版)》请在三一办公上搜索。

1、Java程序设计实验报告文本编辑器的设计与实现Java程序设计实验报告 学生姓名:邵强 学号:0706550222 课程编号:06021801-0 实验名称:文本编辑器的设计与实现 实验内容:设计与实现一个文本编辑器,要求具有方便的图形用户界面,包括标题栏、菜单栏,菜单栏有相关的菜单和菜单项,有快捷键,具有编辑、打开、保存、复制、粘贴等功能。完成有关类的设计,并调试运行,给出有代表性的程序输出结果。 程序代码如下: package note; import java.awt.*; import java.awt.event.*; import java.io.File; import java

2、.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.*; import javax.swing.*; public class Mynote extends JFrame implements ActionListener JMenu menuFile; JMenu menuEdit ; JMenu menuAbout; JP

3、opupMenu popUpMenu; JTextArea txt=null; /编辑区 JLabel lab=new JLabel(未修改); JFileChooser fileChooser = new JFileChooser; File saveFileName = null, fileName = null; public Mynote(String s) super(s); createMenuBar; /菜单栏 createContentPane; /文本编辑区组件 setBounds(100,100,600,450); addWindowListener(new WindowA

4、dapter public void windowClosing(WindowEvent e) closeFile; ); setVisible(true); 1 public void createMenuBar JMenuBar menuBar = new JMenuBar; menuFile = new JMenu(文件); menuEdit = new JMenu(编辑); menuAbout= new JMenu(关于); menuBar.add(menuFile); menuBar.add(menuEdit); menuBar.add(menuAbout); JMenuItem i

5、temOpen = new JMenuItem(打开); menuFile.add(itemOpen); itemOpen.addActionListener(this); menuFile.addSeparator; JMenuItem itemSave = new JMenuItem(保存); menuFile.add(itemSave); itemSave.addActionListener(this); JMenuItem itemSaveas=new JMenuItem(另存为); menuFile.add(itemSaveas); itemSaveas.addActionListe

6、ner(this); menuFile.addSeparator; JMenuItem itemQuit = new JMenuItem(关闭); menuFile.add(itemQuit); itemQuit.addActionListener(this); JMenuItem itemCut = new JMenuItem(剪切); menuEdit.add(itemCut); itemCut.addActionListener(this); JMenuItem itemCopy = new JMenuItem(复制); menuEdit.add(itemCopy); itemCopy.

7、addActionListener(this); JMenuItem itemPaste= new JMenuItem(粘贴); menuEdit.add(itemPaste); itemPaste.addActionListener(this); JMenuItem itemAboutnote = new JMenuItem(关于NotePad); menuAbout.add(itemAboutnote); itemAboutnote.addActionListener(this); /右键菜单 JMenuItem Copyitem=new JMenuItem(复制); Copyitem.a

8、ddActionListener(this); JMenuItem Cutitem=new JMenuItem(剪切); Cutitem.addActionListener(this); 2 JMenuItem Pasteitem=new JMenuItem(粘贴); Pasteitem.addActionListener(this); popUpMenu=new JPopupMenu; popUpMenu.add(Copyitem); popUpMenu.add(Cutitem); popUpMenu.add(Pasteitem); /快捷键itemOpen.setAccelerator(K

9、eyStroke.getKeyStroke(O,Event.CTRL_MASK,false); itemSave.setAccelerator(KeyStroke.getKeyStroke(S,Event.CTRL_MASK,false); itemSaveas.setAccelerator(KeyStroke.getKeyStroke(A,Event.CTRL_MASK,false); itemQuit.setAccelerator(KeyStroke.getKeyStroke(Q,Event.CTRL_MASK,false); itemCut.setAccelerator(KeyStrok

10、e.getKeyStroke(X,Event.CTRL_MASK,false); itemCopy.setAccelerator(KeyStroke.getKeyStroke(C,Event.CTRL_MASK,false); itemPaste.setAccelerator(KeyStroke.getKeyStroke(V,Event.CTRL_MASK,false); setJMenuBar(menuBar); private boolean isChanged if(lab.getText.equals(未修改) return false; else return true; publi

11、c void actionPerformed(ActionEvent e) int option=-1; if(e.getActionCommand.equals(打开) option=0; if(e.getActionCommand.equals(保存) option=1; if(e.getActionCommand.equals(另存为) option=2; if(e.getActionCommand.equals(关闭) option=3; if(e.getActionCommand.equals(剪切) option=4; if(e.getActionCommand.equals(复制

12、) option=5; if(e.getActionCommand.equals(粘贴) option=6; if(e.getActionCommand.equals(关于NotePad) option=7; switch(option) case 0: if(!isChanged) open; else int option2=JOptionPane.showConfirmDialog (this,文件已修改,是否保存?,保存文件?,JOptionPane.YES_NO_OPTION,JOptionPane.WARNING_MESSAGE,null); switch(option2) 3 c

13、ase JOptionPane.YES_OPTION: saveFile;/保存文件 break; case JOptionPane.NO_OPTION: open; break; break; case 1: saveFile;break; case 2: saveFileAs;break; case 3: closeFile;break; case 4: Cut;break; case 5: Copy;break; case 6: Paste;break; case 7: about;break; default: break; 文本编辑区组件 滑动条 宋体,Font.PLAIN,18);

14、 public void keyTyped(KeyEvent e) lab.setText(已修改); public void mouseReleased(MouseEvent e) 4 public void createContentPane / JScrollPane scrollPane; / txt = new JTextArea(10,30); txt.setEditable(true); txt.setFont(new Font( txt.setLineWrap(true); scrollPane = new JScrollPane(txt); add(scrollPane, B

15、orderLayout.CENTER); add(lab,BorderLayout.SOUTH); txt.addKeyListener(new KeyAdapter ); txt.addMouseListener(new MouseAdapter if(e.getButton=MouseEvent.BUTTON3) popUpMenu.show(e.getComponent,e.getX,e.getY); public void mouseClicked(MouseEvent e) if(e.getButton=MouseEvent.BUTTON1) popUpMenu.setVisible

16、(false); ); private void open int option=fileChooser.showOpenDialog(this); if(option=JFileChooser.APPROVE_OPTION) try /打开所选文件 BufferedReader buf=new BufferedReader(new FileReader(fileChooser.getSelectedFile); /设置文件标题 setTitle(fileChooser.getSelectedFile.toString); /删除前一次文件 txt.setText(); /设置状态栏 lab.

17、setText(未修改); /取得系统相依的换行符 String lineSeparator=System.getProperty(line.separator); /读取文件并附加至文字编辑区 String text; while(text=buf.readLine)!=null) txt.append(text); txt.append(lineSeparator); buf.close; catch(IOException e) JOptionPane.showMessageDialog (this,e.toString,打开文件失败,JOptionPane.ERROR_MESSAGE)

18、; private void saveFile 5 /从标题栏取得文件名称 File file=new File(getTitle); /若指定文件不存在 if(!(file.exists) saveFileAs; else try /打开指定文件 BufferedWriter buf=new BufferedWriter(new FileWriter(file); /将文字编辑区的文字写入文件 buf.write(txt.getText); buf.close; /设置状态栏为未修改 lab.setText(未修改); catch(IOException e) JOptionPane.sho

19、wMessageDialog (this, e.toString,写入文件失败,JOptionPane.ERROR_MESSAGE); private void saveFileAs /显示对话框 int option3=fileChooser.showSaveDialog(this); /如果确认选择文件 if(option3=JFileChooser.APPROVE_OPTION) /取得选择的文件 File file=fileChooser.getSelectedFile; /在标题栏上设置文件名称 setTitle(file.toString); try /建立文件 file.crea

20、teNewFile; /进行文件保护 saveFile; catch(IOException e) JOptionPane.showMessageDialog(this,e.toString,无法建立文件,JOptionPane.ERROR_MESSAGE); 6 private void closeFile /是否已保存文件 if(!isChanged) dispose; else int option= JOptionPane.showConfirmDialog (this,文件已修改,是否保存?,保存文件?, JOptionPane.YES_NO_OPTION,JOptionPane.W

21、ARNING_MESSAGE,null); switch(option) case JOptionPane.YES_NO_OPTION: saveFile; case JOptionPane.NO_OPTION: dispose; private void Cut txt.cut; lab.setText(已修改); popUpMenu.setVisible(false); private void Copy txt.copy; popUpMenu.setVisible(false); private void Paste txt.paste; lab.setText(已修改); popUpM

22、enu.setVisible(false); private void about /显示对话框 JOptionPane.showOptionDialog(this,程序名称n+ JNotePadn+ 简介:n+ 一个简单的文字编辑器n, 关于JNotePad,JOptionPane.DEFAULT_OPTION, JOptionPane.INFORMATION_MESSAGE,null,null,null); public static void main(String args) 7 new Mynote(陆庆庆0706550220); 程序有代表性的输出结果及结果分析: 8 这是其中的几个画面截图。这段程序可以执行简单的文字编辑,包括:打开,保存,另存为, 关闭,复制,粘贴,剪切和关于,同时可以右键菜单和有状态栏。 9

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号