import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;import javax.swing.text.*;//简单的文本编辑器
public class Editor extendsJFrame {public JTextPane textPane = new JTextPane(); //文本窗格d,编辑窗口
public JFileChooser filechooser = new JFileChooser(); //文件选择器
publicEditor()
{super("记事本");
Action[] actions= //菜单项的各种功能
{newNewAction(),newOpenAction(),newSaveAction(),newCutAction(),newCopyAction(),newPasteAction(),newAboutAction(),newExitAction(),newHelpAction()
};
setJMenuBar(createJMenuBar(actions));//根据actions创建菜单栏
Container container=getContentPane();
container.add(textPane, BorderLayout.CENTER);
setSize(800, 600);
setVisible(true);//setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}private JMenuBar createJMenuBar(Action[] actions) //创建菜单栏的函数
{
JMenuBar menubar=newJMenuBar();
JMenu menuFile=new JMenu("文件(F)");
JMenu menuEdit=new JMenu("编辑(E)");
JMenu menuAbout=new JMenu("帮助(H)");
menuFile.add(new JMenuItem(actions[0]));
menuFile.add(new JMenuItem(actions[1]));
menuFile.add(new JMenuItem(actions[2]));
menuFile.add(new JMenuItem(actions[7]));
menuEdit.add(new JMenuItem(actions[3]));
menuEdit.add(new JMenuItem(actions[4]));
menuEdit.add(new JMenuItem(actions[5]));
menuAbout.add(new JMenuItem(actions[6]));
menuAbout.add(new JMenuItem(actions[8]));
menubar.add(menuFile);
menubar.add(menuEdit);
menubar.add(menuAbout);returnmenubar;
}class NewAction extends AbstractAction //新建
{publicNewAction()
{super("新建(N) Ctrl+N");
}public voidactionPerformed(ActionEvent e)
{
textPane.setDocument(newDefaultStyledDocument());
}
}class OpenAction extends AbstractAction //打开
{publicOpenAction()
{super("打开(O) Ctrl+O");
}public voidactionPerformed(ActionEvent e)
{int i=filechooser.showOpenDialog(Editor.this); //显示打开文件对话框
if(i==JFileChooser.APPROVE_OPTION) //点击对话框打开选项
{
File f=filechooser.getSelectedFile(); //得到选择的文件
try{
InputStream is=newFileInputStream(f);
textPane.read(is,"d");
}catch(Exception ex)
{
ex.printStackTrace();
}
}
}
}class SaveAction extends AbstractAction //保存
{publicSaveAction()
{super("保存(S) Ctrl+S");
}public voidactionPerformed(ActionEvent e)
{int i=filechooser.showSaveDialog(Editor.this);if(i==JFileChooser.APPROVE_OPTION)
{
File f=filechooser.getSelectedFile();try{
FileOutputStream out=newFileOutputStream(f);
out.write(textPane.getText().getBytes());
}catch(Exception ex)
{
ex.printStackTrace();
}
}
}
}class ExitAction extends AbstractAction //退出
{publicExitAction()
{super("退出(X)");
}public voidactionPerformed(ActionEvent e)
{
dispose();
}
}class CutAction extends AbstractAction //剪切
{publicCutAction()
{super("剪切(T) Ctrl+X");
}public voidactionPerformed(ActionEvent e)
{
textPane.cut();
}
}class CopyAction extends AbstractAction //复制
{publicCopyAction()
{super("复制(C) Ctrl+C");
}public voidactionPerformed(ActionEvent e)
{
textPane.copy();
}
}class PasteAction extends AbstractAction //粘贴
{publicPasteAction()
{super("粘贴(P) Ctrl+V");
}public voidactionPerformed(ActionEvent e)
{
textPane.paste();
}
}class AboutAction extendsAbstractAction
{publicAboutAction()
{super("关于记事本(A)");
}public voidactionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(Editor.this,"实现了记事本的一些基本功能","关于",JOptionPane.PLAIN_MESSAGE);
}
}class HelpAction extendsAbstractAction
{publicHelpAction()
{super("联系开发者");
}public voidactionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(Editor.this,"meteor_disappears@foxmail.com","开发者:王子辰",JOptionPane.PLAIN_MESSAGE);
}
}public static voidmain(String[] args)
{newEditor();
}
}