本系列第一部分建立記事本的視覺骨架:主視窗(JFrame)、選單列(JMenuBar)、工具列(JToolBar)、文字編輯區(JTextArea + JScrollPane)、狀態列(JLabel)與右鍵彈出選單(JPopupMenu)。並完成所有元件的事件監聽器註冊。
public class Notepad extends JFrame implements ActionListener, MouseListener
ActionListener:處理選單項目、工具列按鈕、核取方塊等動作事件。MouseListener:處理文字區滑鼠事件(右鍵選單觸發)。| 類別 | 用途 |
|---|---|
JMenuBar, JMenu, JMenuItem | 選單列、下拉選單、選單項目 |
JToolBar, JButton | 工具列與圖示按鈕(新建、開啟、儲存) |
JTextArea | 多行文字編輯區 |
JScrollPane, JViewport | 捲軸容器 |
JPopupMenu, JMenuItem | 右鍵彈出選單 |
JFileChooser, JColorChooser | 檔案/顏色選擇對話框 |
Clipboard, StringSelection | 系統剪貼簿操作 |
BorderLayout,工具列置北(NORTH),文字區置中(CENTER),狀態列置南(SOUTH)。JCheckBoxMenuItem)setMnemonic()(Alt+字母)與 setAccelerator(KeyStroke)(Ctrl+字母)設定鍵盤快捷鍵。JPopupMenu 加入四個項目,並向 jTextArea1 註冊 MouseListener。JTextArea 放入 JViewport 再置入 JScrollPane,確保捲軸正常運作。ActionListener 適配器(如 File_new_actionAdapter),內部轉呼叫主類別對應方法,實現關注點分離。Notepad.actionPerformed() 分派。setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 關閉視窗即結束程式
jTextArea1.setDoubleBuffered(false); // 關閉雙緩衝(舊版 JDK 相容)
show(); validate(); // 顯示視窗並佈局驗證
此部分奠定了記事本的完整 UI 架構,展示了 Swing 容器巢狀、選單/工具列/右鍵選單的協同建構、快速鍵設定與事件監聽器模組化註冊技巧,為後續功能實作鋪路。