java记事本程序设计.doc
import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;public class MyNotebook public static void main(String args) new Notebook();/Notebook()主类: class Notebook extends JFrame Container container;JFileChooser fc=new JFileChooser(); File file=null; JMenuBar mb; JMenu fileMenu,editMenu,helpMenu; JMenuItem newItem,openItem,saveItem,saveasItem,exitItem,cutItem,copyItem,pasteItem,sallItem,aboutItem; JTextArea jta; JPopupMenu popUpMenu; public Notebook() /记事本主界面设计程序/setTitle("记事本");container=this.getContentPane();container.setLayout(new BorderLayout();jta=new JTextArea();container.add(jta);setVisible(true);setSize(650, 450); mb=new JMenuBar(); setJMenuBar(mb); /文件菜单及其菜单选项的程序设计/fileMenu=new JMenu("文件");newItem=new JMenuItem("新建");/设置快捷键/newItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N ,ActionEvent.CTRL_MASK); /设置“新建”事件监听/newItem.addActionListener(new NewActionListener();fileMenu.add(newItem);fileMenu.addSeparator();openItem=new JMenuItem("打开");openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O ,ActionEvent.CTRL_MASK);openItem.addActionListener(new OpenActionListener();fileMenu.add(openItem);fileMenu.addSeparator(); saveItem=new JMenuItem("保存");saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S ,ActionEvent.CTRL_MASK);saveItem.addActionListener(new SaveActionListener();fileMenu.add(saveItem);fileMenu.addSeparator();saveasItem=new JMenuItem("另存为");saveasItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A ,ActionEvent.CTRL_MASK);saveasItem.addActionListener(new SaveActionListener();fileMenu.add(saveasItem);fileMenu.addSeparator();exitItem=new JMenuItem("退出");exitItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E ,ActionEvent.CTRL_MASK);exitItem.addActionListener(new ExitActionListener();fileMenu.add(exitItem);mb.add(fileMenu);/编辑菜单栏及其菜单选项程序设计/editMenu=new JMenu("编辑");cutItem=new JMenuItem("剪切");cutItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, ActionEvent.CTRL_MASK);cutItem.addActionListener(new CutActionListener();editMenu.add(cutItem);editMenu.addSeparator();copyItem=new JMenuItem("复制");copyItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK);copyItem.addActionListener(new CopyActionListener();editMenu.add(copyItem);editMenu.addSeparator(); pasteItem=new JMenuItem("粘贴");pasteItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK);pasteItem.addActionListener(new PasteActionListener();editMenu.add(pasteItem);editMenu.addSeparator();sallItem=new JMenuItem("全选");sallItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_M, ActionEvent.CTRL_MASK);sallItem.addActionListener(new SallActionListener();editMenu.add(sallItem);mb.add(editMenu);/帮助菜单栏及其菜单选项程序设计/helpMenu=new JMenu("帮助");aboutItem=new JMenuItem("关于记事本");aboutItem.addActionListener(new AbouthActionListener();helpMenu.add(aboutItem);mb.add(helpMenu);/编辑菜单的鼠标监听及其弹出菜单的功能设计/popUpMenu = editMenu.getPopupMenu();jta.addMouseListener( new MouseAdapter() public void mouseReleased(MouseEvent e) if(e.getButton() = MouseEvent.BUTTON3) popUpMenu.show(editMenu, e.getX(), e.getY(); public void mouseClicked(MouseEvent e) if(e.getButton() = MouseEvent.BUTTON1) popUpMenu.setVisible(false); ); /“新建”功能的实现/class NewActionListener implements ActionListener public void actionPerformed(ActionEvent e) jta.setText(""); file=null; /“保存功能的实现”/class SaveActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) if(file!=null) fc.setSelectedFile(file); int returnVal=fc.showSaveDialog(Notebook.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=fc.getSelectedFile(); saving(); void saving() try FileWriter Writef=new FileWriter(file); Writef.write(jta.getText(); Writef.close(); catch(Exception e)e.printStackTrace(); /“打开”功能的实现/class OpenActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) if(file !=null)fc.setSelectedFile(file); int returnVal=fc.showOpenDialog(Notebook.this); if(returnVal=JFileChooser.APPROVE_OPTION) file=fc.getSelectedFile(); unfold(); void unfold() try FileReader Readf=new FileReader(file); int len=(int)file.length(); char buffer=new charlen; Readf.read(buffer,0,len); Readf.close(); jta.setText(new String(buffer); catch(Exception e)e.printStackTrace(); /“退出”功能的实现/class ExitActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) setVisible(false); dispose(); System.exit(0);/“剪切”功能的 实现/class CutActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) jta.cut();/“复制”功能的实现/class CopyActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) jta.copy();/“粘贴”功能的实现/class PasteActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) jta.paste();/“全选”功能的实现/class SallActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) jta.setSelectionStart(0);jta.setSelectionEnd(jta.getText().length();/“关于”功能的实现/class AbouthActionListener implements ActionListenerpublic void actionPerformed(ActionEvent e) String msg = "这是一个记事本"String title = "记事本"JOptionPane.showMessageDialog(container, msg, title, JOptionPane.INFORMATION_MESSAGE ) ;