今天給大家介紹一下關於如何用Java實現記事本功能,是學習Java swing的一個非常好的案例,下面先看一下運行結果(下載地址在最下面):
下面我們來看源碼:
[java] view plain copy import java.awt.*; import java.awt.event.*; import java.text.*; import java.util.*; import java.io.*; import javax.swing.undo.*; import javax.swing.border.*; import javax.swing.*; import javax.swing.text.*; import javax.swing.event.*; import java.awt.datatransfer.*; public class Notepad extends JFrame implements ActionListener,DocumentListener { //菜單 JMenu fileMenu,editMenu,formatMenu,viewMenu,helpMenu; //右鍵快顯功能表項 JPopupMenu popupMenu; JMenuItem popupMenu_Undo,popupMenu_Cut,popupMenu_Copy,popupMenu_Paste,popupMenu_Delete,popupMenu_SelectAll; //“檔案”的功能表項目 JMenuItem fileMenu_New,fileMenu_Open,fileMenu_Save,fileMenu_SaveAs,fileMenu_PageSetUp,fileMenu_Print,fileMenu_Exit; //“編輯”的功能表項目 JMenuItem editMenu_Undo,editMenu_Cut,editMenu_Copy,editMenu_Paste,editMenu_Delete,editMenu_Find,editMenu_FindNext,editMenu_Replace,editMenu_GoTo,editMenu_SelectAll,editMenu_TimeDate; //“格式”的功能表項目 JCheckBoxMenuItem formatMenu_LineWrap; JMenuItem formatMenu_Font; //“查看”的功能表項目 JCheckBoxMenuItem viewMenu_Status; //“協助”的功能表項目 JMenuItem helpMenu_HelpTopics,helpMenu_AboutNotepad; //“文本”編輯地區 JTextArea editArea; //狀態列標籤 JLabel statusLabel; //系統剪貼簿 Toolkit toolkit=Toolkit.getDefaultToolkit(); Clipboard clipBoard=toolkit.getSystemClipboard(); //建立撤銷操作管理器(與撤銷操作有關) protected UndoManager undo=new UndoManager(); protected UndoableEditListener undoHandler=new UndoHandler(); //其他變數 String oldValue;//存放編輯區原來的內容,用於比較文本是否有改動