用Java实现文本编辑器
生活随笔
收集整理的這篇文章主要介紹了
用Java实现文本编辑器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
源碼里有注釋:
import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*; import javax.swing.text.*;//簡單的文本編輯器public class Editor extends JFrame {public JTextPane textPane = new JTextPane(); //文本窗格d,編輯窗口public JFileChooser filechooser = new JFileChooser(); //文件選擇器public Editor(){super("簡記");Action[] actions= //菜單項的各種功能{new NewAction(),new OpenAction(),new SaveAction(),new CutAction(),new CopyAction(),new PasteAction(),new AboutAction(),new ExitAction(),new HelpAction()};setJMenuBar(createJMenuBar(actions)); //根據actions創建菜單欄Container container=getContentPane(); container.add(textPane, BorderLayout.CENTER);setSize(1300,1500);setVisible(true);// setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}private JMenuBar createJMenuBar(Action[] actions) //創建菜單欄的函數{JMenuBar menubar=new JMenuBar();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);return menubar;}class NewAction extends AbstractAction //新建{public NewAction(){super("新建(N) Ctrl+N");}public void actionPerformed(ActionEvent e){textPane.setDocument(new DefaultStyledDocument());}}class OpenAction extends AbstractAction //打開{public OpenAction(){super("打開(O) Ctrl+O");}public void actionPerformed(ActionEvent e){int i=filechooser.showOpenDialog(Editor.this); //顯示打開文件對話框if(i==JFileChooser.APPROVE_OPTION) //點擊對話框打開選項{File f=filechooser.getSelectedFile(); //得到選擇的文件try{InputStream is=new FileInputStream(f);textPane.read(is, "d");}catch(Exception ex){ex.printStackTrace();}}}}class SaveAction extends AbstractAction //保存{public SaveAction(){super("保存(S) Ctrl+S");}public void actionPerformed(ActionEvent e){int i=filechooser.showSaveDialog(Editor.this);if(i==JFileChooser.APPROVE_OPTION){File f=filechooser.getSelectedFile();try{FileOutputStream out=new FileOutputStream(f);out.write(textPane.getText().getBytes());}catch(Exception ex){ex.printStackTrace();}}}}class ExitAction extends AbstractAction //退出{public ExitAction(){super("退出(X)");}public void actionPerformed(ActionEvent e){dispose();}}class CutAction extends AbstractAction //剪切{public CutAction(){super("剪切(T) Ctrl+X");}public void actionPerformed(ActionEvent e){textPane.cut();}}class CopyAction extends AbstractAction //復制{public CopyAction(){super("復制(C) Ctrl+C");}public void actionPerformed(ActionEvent e){textPane.copy();}}class PasteAction extends AbstractAction //粘貼{public PasteAction(){super("粘貼(P) Ctrl+V");}public void actionPerformed(ActionEvent e){textPane.paste();}}class AboutAction extends AbstractAction{public AboutAction(){super("關于簡記(A)");}public void actionPerformed(ActionEvent e){JOptionPane.showMessageDialog(Editor.this,"實現了記事本的一些基本功能","關于",JOptionPane.PLAIN_MESSAGE);}}class HelpAction extends AbstractAction{public HelpAction(){super("聯系開發者");}public void actionPerformed(ActionEvent e){JOptionPane.showMessageDialog(Editor.this,"cpeng2424@gmail.com","開發者郵箱",JOptionPane.PLAIN_MESSAGE);}}public static void main(String[] args){new Editor();} }總結
以上是生活随笔為你收集整理的用Java实现文本编辑器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019年软考程序员考试大纲
- 下一篇: 用Java实现文本编辑器:创建、浏览、编