《用Java程序编写一个记事本程序的设计报告(共25页).doc》由会员分享,可在线阅读,更多相关《用Java程序编写一个记事本程序的设计报告(共25页).doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上用Java程序编写一个记事本程序的设 计 报 告学习中心(点): 泾阳学习中心 专 业 : 计算机科学与技术 层 次 : 专升本 姓 名 : 李 永 固 批 次 : 112 目 录一、设计分析1二、程序结构1三、各模块的功能及程序说明21、类设计22、主要功能代码实现4四、源程序9五、操作方法20六、试验结果20七、设计体会22专心-专注-专业用Java程序编写一个记事本程序的设计报告一、设计要求1.用图形用户界面实现。2.能实现编辑、保存、另存为、查找替换等功能。二、程序结构流程图:图1基本流程图本Java文本编辑器功能设计如下:图2基本功能图三、各模块的功能及程序
2、说明1、类设计(1)类MiniText ,包括 initTextPane方法初始化面板, initMenu()方法初始化菜单, initAboutDialog()方法初始化关于对话框, initToolBar()方法初始化工具栏, initRightKey()方法初始化右键设置,等方法。类成员如下:(2)类Loading (实现登陆)类成员如下: (3)类runtime (实现时间同步)类成员如下:(4)类MainFunction (包含主函数)类成员如下:2、主要功能代码实现(1)登陆界面:class Loading extends JWindow implements Runnable T
3、hread dluThread=null; private JProgressBar progress; public Loading() setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR);/设置光标为等待状态 JPanel dlu = new JPanel(new BorderLayout(); URL url = getClass().getResource(/images/loading.jpg); if(url != null) dlu.add(new JButton(new ImageIcon(url), BorderL
4、ayout.CENTER); progress = new JProgressBar(1,100); progress.setStringPainted(true); progress.setBorderPainted(true); progress.setBackground(Color.white); progress.setForeground(Color.green); dlu.add(progress,BorderLayout.SOUTH); setContentPane(dlu); /设置窗口属性为登陆面板属性 Dimension screen = getToolkit().get
5、ScreenSize(); pack(); /显示登陆界面 setLocation(screen.width/4,screen.height/4); /设置登陆界面始终在屏幕中间显示 public void start() / this.toFront(); dluThread=new Thread(this); dluThread.start(); public void run() show(); try for (int i=0;i100;i+) Thread.sleep(100); progress.setValue(progress.getValue() + 1); progress
6、.setString(欢迎进入迷你编辑,请稍后. . +i+%); catch (Exception ex) ex.printStackTrace(); dispose();/关闭登陆界面 (2).时间标签: class runtime extends JButton implements Runnable Thread datetime=null; public runtime() public void run() for(;) /java.util.Date timeer=new java.util.Date(); Calendar now=Calendar.getInstance();
7、 int year1=now.get(Calendar.YEAR); int month1=now.get(Calendar.MONTH); int day1=now.get(Calendar.DAY_OF_MONTH); int hour1=now.get(Calendar.HOUR); int minute1=now.get(Calendar.MINUTE); int sec=now.get(Calendar.SECOND); setText(year1+年+month1+月+day1+日 +hour1+:+minute1+:+sec); /System.out.println(now.g
8、et(Calendar.DAY_OF_MONTH)-60); try Thread.currentThread().sleep(1000); catch(InterruptedException e) (3)右键的实现:void initRightKey ()filepopup=new JPopupMenu();uundo=new JMenuItem(撤消(U);uundo.setMnemonic(U);ccut=new JMenuItem(剪切(T);ccut.setMnemonic(T);ccopy=new JMenuItem(复制(C);ccopy.setMnemonic(C);ppas
9、te=new JMenuItem(粘贴(V);ppaste.setMnemonic(V);ddelete=new JMenuItem(删除(D);ddelete.setMnemonic(D);sselectall=new JMenuItem(全选(A);sselectall.setMnemonic(A);filepopup.add(uundo);filepopup.addSeparator();filepopup.add(ccut);filepopup.add(ccopy);filepopup.add(ppaste);filepopup.add(ddelete);filepopup.addSe
10、parator();filepopup.add(sselectall);uundo.addActionListener(action);ccut.addActionListener(action);ccopy.addActionListener(action);ppaste.addActionListener(action);ddelete.addActionListener(action);sselectall.addActionListener(action);text.addMouseListener(new MouseAdapter()public void mousePressed(
11、MouseEvent event)checkForTriggerEvent(event);public void mouseReleased(MouseEvent event)checkForTriggerEvent(event);public void checkForTriggerEvent(MouseEvent event)if(event.isPopupTrigger()filepopup.show(event.getComponent(),event.getX(),event.getY();); (4)打开、保存、复制、粘贴、撤销等功能事件响应实现:/事件处理 ActionListe
12、ner action = new ActionListener() public void actionPerformed(ActionEvent e) JMenuItem mi = (JMenuItem)e.getSource(); String id = mi.getText(); if(id.equals(新建) Date date=new Date(); text.setText(date.toString(); file = null; else if(id.equals(打开.) if(file != null) filechooser.setSelectedFile(file);
13、/为用户选择文件提供了一种简单的机制 int returnVal = filechooser.showOpenDialog(MiniText.this); if(returnVal = JFileChooser.APPROVE_OPTION) file = filechooser.getSelectedFile(); openFile(); else if(id.equals(保存.) if(file != null) filechooser.setSelectedFile(file); int returnVal = filechooser.showSaveDialog(MiniText.t
14、his); if(returnVal = JFileChooser.APPROVE_OPTION) file = filechooser.getSelectedFile(); saveFile(); JOptionPane.showMessageDialog(null,已保存); else if(id.equals(另存为) if(file != null) filechooser.setSelectedFile(file); int returnVal = filechooser.showSaveDialog(MiniText.this); if(returnVal = JFileChoos
15、er.APPROVE_OPTION) file = filechooser.getSelectedFile(); saveFile(); JOptionPane.showMessageDialog(null,已保存); else if(id.equals(打印) prt.printDialog(); else if(id.equals(打印页面设置)try prt.print(); catch(Exception ew) JOptionPane.showMessageDialog(null,打印出错!,错误,JOptionPane.ERROR_MESSAGE); else if(id.equa
16、ls(退出) System.exit(0); else if(id.equals(剪切)|id.equals(剪切(T) text.cut(); else if(id.equals(复制)|id.equals(复制(C) text.copy(); else if(id.equals(粘贴)|id.equals(粘贴(V) text.paste(); else if(id.equals(删除)|id.equals(删除(D) text.replaceSelection(); else if(id.equals(选择全部)|id.equals(全选(A) text.selectAll(); els
17、e if(id.equals(字体颜色.) color = JColorChooser.showDialog(MiniText.this,字体颜色设置,color); text.setForeground(color); else if(id.equals(自动换行) else if(id.equals(撤销)|id.equals(撤消(U) text.setText(); text.selectAll(); else if(id.equals(查找) String find=查找; find=JOptionPane.showInputDialog(查找:); else if(id.equal
18、s(时间) time.setFont(new Font(Times New Roman,Font.PLAIN,12); text.insertComponent(time); else if(id.equals(系统 记事本)try String command = notepad.exe;Process child = Runtime.getRuntime().exec(command);/从系统进程中调用记事本 catch (IOException ex) else if(id.equals(系统 计算器) try String command = calc.exe; Process ch
19、ild = Runtime.getRuntime().exec(command);/调用系统计算器 catch (IOException ex) else if(id.equals(关于) about.setSize(250,150); about.show(); ;四、源程序import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; public class Notepad extends JFrame / 系统组件声明 private JMenuBar menuBar = new J
20、MenuBar(); private JEditorPane content = new JEditorPane(); private JScrollPane scroll = new JScrollPane(content); private JFileChooser filechooser = new JFileChooser() ; private BorderLayout bord = new BorderLayout(); private JLabel statusBar = new JLabel(); private JPanel pane = new JPanel(); priv
21、ate File file = null; / 定义文件菜单private JMenu fileMenu = new JMenu(); private JMenuItem newMenuItem = new JMenuItem(); private JMenuItem openMenuItem = new JMenuItem(); private JMenuItem saveMenuItem = new JMenuItem(); private JMenuItem saveAsMenuItem = new JMenuItem(); private JMenuItem pageSetupMenu
22、Item = new JMenuItem(); private JMenuItem printMenuItem = new JMenuItem(); private JMenuItem exitMenuItem = new JMenuItem(); / 定义风格菜单 private JMenu styleMenu = new JMenu(); private ButtonGroup styleMenuGroup = new ButtonGroup(); private JRadioButtonMenuItem javaStyleMenuItem = new JRadioButtonMenuIt
23、em(); private JRadioButtonMenuItem metalStyleMenuItem = new JRadioButtonMenuItem(); private JRadioButtonMenuItem windowsStyleMenuItem = new JRadioButtonMenuItem(); / 定义帮助菜单private JMenuItem aboutMenuItem = new JMenuItem(); private JMenuItem helpTopicMenuItem = new JMenuItem(); private JMenu helpMenu
24、 = new JMenu(); / 构造函数 public Notepad() initComponents(); private void initComponents() / 添加子菜单项到文件菜单 fileMenu.setText(u6587u4ef6 (F); newMenuItem.setText(新建(N)Ctrl+N); openMenuItem.setText(打开(O). Ctrl+O); saveMenuItem.setText(保存(S)Ctrl+S); saveAsMenuItem.setText(另存为(A).); pageSetupMenuItem.setText(
25、页面设置(U).); printMenuItem.setText(打印(P). Ctrl+P); exitMenuItem.setText(退出); fileMenu.add(newMenuItem); fileMenu.add(openMenuItem); fileMenu.add(saveMenuItem); fileMenu.add(saveAsMenuItem); fileMenu.addSeparator(); fileMenu.add(pageSetupMenuItem); fileMenu.add(printMenuItem); fileMenu.addSeparator();
26、fileMenu.add(exitMenuItem); / 添加子菜单项到风格菜单 styleMenu.setText(风格(S); javaStyleMenuItem.setText(Java默认); metalStyleMenuItem.setText(Metal风格); windowsStyleMenuItem.setText(Windows风格); styleMenuGroup.add(javaStyleMenuItem); styleMenuGroup.add(metalStyleMenuItem); styleMenuGroup.add(windowsStyleMenuItem);
27、 styleMenu.add(javaStyleMenuItem); styleMenu.add(metalStyleMenuItem); styleMenu.add(windowsStyleMenuItem); / 添加子菜单项到帮助菜单helpMenu.setText(帮助(H); helpTopicMenuItem.setText(帮助主题(H); aboutMenuItem.setText(关于记事本(A); helpMenu.add(helpTopicMenuItem); helpMenu.addSeparator(); helpMenu.add(aboutMenuItem); /
28、定义文件菜单下的事件监听 newMenuItem.addActionListener(new newMenuItem_actionAdapter(this); openMenuItem.addActionListener(new openMenuItem_actionAdapter(this); saveMenuItem.addActionListener(new saveMenuItem_actionAdapter(this); saveAsMenuItem.addActionListener(new saveAsMenuItem_actionAdapter(this); pageSetup
29、MenuItem.addActionListener(new pageSetupMenuItem_actionAdapter(this); printMenuItem.addActionListener(new printMenuItem_actionAdapter(this); exitMenuItem.addActionListener(new exitMenuItem_actionAdapter(this); / 定义风格菜单下的事件监听 javaStyleMenuItem.addActionListener(new javaStyleMenuItem_actionAdapter(thi
30、s); metalStyleMenuItem.addActionListener(new metalStyleMenuItem_actionAdapter(this); windowsStyleMenuItem.addActionListener(new windowsStyleMenuItem_actionAdapter(this); / 定义帮助菜单下的事件监听 helpTopicMenuItem.addActionListener(new helpTopicMenuItem_actionAdapter(this); aboutMenuItem.addActionListener(new
31、aboutMenuItem_actionAdapter(this); / 填加菜单到菜单栏 menuBar.add(fileMenu); menuBar.add(styleMenu); menuBar.add(helpMenu); / 对主窗口的一些设置 this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setTitle(无标题 - u8bb0u4e8bu672c); this.setSize(640,480); setJMenuBar(menuBar); pane.setLayout(bord); pane.add(Center,scrol
32、l); setContentPane(pane); / 定义新建菜单项方法 public void newMenuItemActionPerformed(ActionEvent evt) file = null; if(!(.equals(content.getText() Object options = 是(Y), 否(N),取消 ; int s = JOptionPane.showOptionDialog(null, u6587u4ef6 +getTitle()+ u7684u6587u5b57u5df2u7ecfu6539u53d8u3002nu60f3u4fddu5b58u6587u
33、4ef6u5417uff1f, u8bb0u4e8bu672c, JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options0); switch(s) case 0: int returnVal=filechooser.showSaveDialog(this); if(returnVal = JFileChooser.APPROVE_OPTION) file=filechooser.getSelectedFile(); try FileWriter fw=new FileWriter(file)
34、; fw.write(content.getText(); setTitle(filechooser.getSelectedFile().getName()+ - u8bb0u4e8bu672c); fw.close(); catch(Exception e) e.printStackTrace(); break; case 1: content.setText(); setTitle(无标题 - u8bb0u4e8bu672c); / 定义打开菜单项方法public void openMenuItemActionPerformed(ActionEvent evt) try file = nu
35、ll; int returnVal = filechooser.showOpenDialog(this); if(returnVal = JFileChooser.APPROVE_OPTION) file = filechooser.getSelectedFile(); FileReader fr = new FileReader(file); int len = (int)file.length(); char buffer = new charlen; fr.read(buffer,0,len); fr.close(); content.setText(new String(buffer)
36、; catch(Exception e) e.printStackTrace(); / 定义退出菜单项方法 public void exitMenuItem_actionPerformed(ActionEvent e) if(!(.equals(content.getText() Object options = 是(Y), 否(N),取消 ; int s = JOptionPane.showOptionDialog(null, 文件的文字已经改变。n想保存文件吗?, u8bb0u4e8bu672c, JOptionPane.DEFAULT_OPTION, JOptionPane.WARNIN
37、G_MESSAGE, null, options, options0); switch(s) case 0: int returnVal=filechooser.showSaveDialog(this); if(returnVal = JFileChooser.APPROVE_OPTION) file=filechooser.getSelectedFile(); try FileWriter fw=new FileWriter(file); fw.write(content.getText(); setTitle(filechooser.getSelectedFile().getName()+
38、 - u8bb0u4e8bu672c); fw.close(); catch(Exception ex) ex.printStackTrace(); break; case 1: System.exit(0); else System.exit(0); / 保存事件public void saveMenuItemActionPerformed(ActionEvent evt) int returnVal=filechooser.showSaveDialog(this); if(returnVal = JFileChooser.APPROVE_OPTION) file=filechooser.getSelectedFile(); try FileWriter fw=new FileWriter(file); fw.write(content.getText(); setTitle(filechooser.getSelectedFile().getName()+ - u8bb0u4e8bu672c); fw.close(); catch(Exception e) e.printStackTrace();