怎么用Java写记事本

1. 怎样用java编写一个记事本 ,具体步骤 import java.awt.BorderLayout;import java.awt.Color;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JColorChooser;import javax.swing.JDialog;import javax.swing.JFileChooser;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JScrollPane;import javax.swing.JTextPane;import javax.swing.JToolBar;public class TextEditorFrame extends JFrame { File file = null; Color color = Color.red; TextEditorFrame() { initTextPane(); initAboutDialog(); initToolBar(); initMenu(); } void initTextPane() { getContentPane().add(new JScrollPane(text)); } JTextPane text = new JTextPane(); // 这是用来做文本框的 JFileChooser filechooser = new JFileChooser(); // 文件选择框 JColorChooser colorchooser = new JColorChooser();// JDialog about = new JDialog(this); // 关于对话框 JMenuBar menubar = new JMenuBar();// 菜单 JMenu[] menus = new JMenu[] { new JMenu("文件"), new JMenu("编辑"), new JMenu("帮助") }; JMenuItem menuitems[][] = new JMenuItem[][] { { new JMenuItem("新建"), new JMenuItem("打开"), new JMenuItem("保存"), new JMenuItem("退出") }, {new JMenuItem("复制"), new JMenuItem("剪切"), new JMenuItem("粘贴"), new JMenuItem("颜色") }, { new JMenuItem("关于") } }; void initMenu() { for (int i = 0; i < menus.length; i++) { menubar.add(menus[i]); for (int j = 0; j < menuitems[i].length; j++) { menus[i].add(menuitems[i][j]); menuitems[i][j].addActionListener(action); } } this.setJMenuBar(menubar); } ActionListener action = new ActionListener() { // when here have not wrong: public void actionPerformed(ActionEvent e) { JMenuItem mi = (JMenuItem) e.getSource(); String id = mi.getText(); if (id.equals("新建")) { text.setText(""); file = null; } else if (id.equals("打开")) { if (file != null) filechooser.setSelectedFile(file); int returnVal = filechooser .showOpenDialog(TextEditorFrame.this); if (returnVal == JFileChooser.APPROVE_OPTION) { file = filechooser.getSelectedFile(); openFile(); } } else if (id.equals("保存")) { if (file != null) filechooser.setSelectedFile(file); int returnVal = filechooser .showSaveDialog(TextEditorFrame.this); if (returnVal == JFileChooser.APPROVE_OPTION) { file = filechooser.getSelectedFile(); saveFile(); } } else if (id.equals("退出")) { TextEditorFrame f = new TextEditorFrame(); int s = JOptionPane.showConfirmDialog(f, "你真的要结束吗", "结束程序", JOptionPane.YES_NO_CANCEL_OPTION); if (s == JOptionPane.YES_OPTION) System.exit(0); } else if (id.equals("剪切")) { text.cut(); } else if (id.equals("复制")) { text.copy(); } else if (id.equals("粘贴")) { text.paste(); } else if (id.equals("color")) { color = JColorChooser.showDialog(TextEditorFrame.this, "", color); text.setForeground(color); } else if (id.equals("关于")) { about.setSize(200, 150); about.show(); } } }; void saveFile() { try { FileWriter fw = new FileWriter(file); fw.write(text.getText()); fw.close(); } catch (Exception e) { e.printStackTrace(); } } void openFile() { try { FileReader fr = new FileReader(file); int len = (int) file.length(); char[] buffer = new char[len]; fr.read(buffer, 0, len); fr.close(); text.setText(new String(buffer)); } catch (Exception e) { e.printStackTrace(); } } void initAboutDialog() { about.getContentPane().add(new JLabel("作者-覃树新:记事本Q1.0版本")); about.setModal(true); about.setSize(200, 100); } JToolBar toolbar = new JToolBar();// 我来加上工具条 JButton[] buttons = new JButton[] { new JButton("", new ImageIcon("qin.jpg")), new JButton("", new ImageIcon("shu.jpg")), new JButton("", new ImageIcon("xin.jpg")) }; void initToolBar() { for (int i = 0; i