以 AWT Frame、TextArea、MenuBar 快速構建記事本原型,具備「檔案/編輯/格式/視窗/說明」五級選單、新增/開啟/儲存/另存新檔/結束、剪貼/複製/貼上/全選/查找、字體/段落、狀態列、關於對話框等基礎架構。程式碼結構清晰,適合初學者理解 AWT 事件模型與選單系統。
public class BusyworkBook extends WindowAdapter implements ActionListener {
Frame f = new Frame("JAVA作業本1.0.0 Writer:ZhangYunFeng");
TextArea a = new TextArea();
// main() → go() → 建立選單列、註冊監聽器、顯示視窗
}
MenuBar mb → f.setMenuBar(mb)Menu:檔案、編輯、格式、視窗、說明Menu 下加入對應 MenuItemmb.setHelpMenu(m5) 將說明選單置右ActionListener(匿名類別或 this)public void windowClosing(WindowEvent e) { System.exit(1); }
f.addWindowListener(this);
public void actionPerformed(ActionEvent e) {
FileDialog d = new FileDialog(f, "FileDialog");
d.setVisible(true);
String filename = d.getFile(); // 實際讀寫邏輯待補全
}
public void pin() {
Dialog dl = new Dialog(f, "關於JAVA作業本1.0.0");
dl.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) { dl.setVisible(false); }
});
dl.setBounds(200,200,400,100);
dl.setBackground(Color.yellow);
dl.add(new Label("JAVA作業本1.0.0版,作者:ZHANG YUN FENG, 2004-06-05", Label.CENTER));
dl.setVisible(true);
}
| 缺口 | 建議方案 |
|---|---|
| 檔案實際讀/寫未實作 | 在 actionPerformed 依選單項目呼叫 FileReader/Writer 或 NIO Files |
| 編輯功能(剪貼/複製/貼上/全選/查找)無邏輯 | 呼叫 TextArea 原生 cut()/copy()/paste()/selectAll();查找需自行實作 |
| 字體/段落/狀態列為空殼 | 引入 FontDialog、ParagraphDialog、底部 Label 顯示行/列 |
| AWT 外觀落後 | 遷移至 Swing (JFrame/JTextArea/JMenuBar) 或 JavaFX |
| 編碼處理缺失 | 讀寫明確指定 StandardCharsets.UTF_8 |
javac BusyworkBook.java
java BusyworkBook