本範例展示使用 Java AWT(Abstract Window Toolkit)建立一個具備基本編輯功能的桌面記事本應用程式。程式碼包含選單列、工具列、文字編輯區、檔案操作(新建、開啟、儲存、另存新檔)、編輯功能(剪下、複製、貼上、全選、查找)、格式設定、視窗管理與關於對話框等完整功能。
public class busyworkBook extends WindowAdapter implements ActionListener {
Frame f = new Frame("JAVA作業本1.0.0 Writer:ZhangYunFeng");
TextArea a = new TextArea();
// ...
WindowAdapter 處理視窗關閉事件ActionListener 處理選單項目點擊事件Frame 作為主視窗容器,TextArea 作為文字編輯元件MenuBar mb = new MenuBar();
Menu m1 = new Menu("檔案"), m2 = new Menu("編輯"), m3 = new Menu("格式"),
m4 = new Menu("視窗"), m5 = new Menu("說明");
mb.add(m1); mb.add(m2); mb.add(m3); mb.add(m4); mb.setHelpMenu(m5);
使用 MenuBar、Menu、MenuItem 建立傳統下拉式選單,並透過 addActionListener 註冊事件處理。
MenuItem m105 = new MenuItem("離開");
m105.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { System.exit(1); }
});
// 儲存功能委派給主類別處理
m103.addActionListener(this);
展示匿名內部類別處理簡單事件(如離開),複雜邏輯則由主類別的 actionPerformed 統一處理。
public void actionPerformed(ActionEvent e) {
FileDialog d = new FileDialog(f, "FileDialog");
d.setVisible(true);
String filename = d.getFile();
// 實際讀寫邏輯需自行補完
}
使用 AWT FileDialog 實現原生檔案選取對話框,但原始碼僅取得檔名,完整讀寫邏輯需搭配 FileReader/FileWriter 實作。
public void pin() {
final 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);
Label l1 = new Label("JAVA作業本1.0.0版,作者:ZHANG YUN FENG, 2004-06-05", Label.CENTER);
dl.setLayout(new BorderLayout());
dl.add(l1, "Center");
dl.setVisible(true);
}
建立模態對話框顯示版本資訊,使用 BorderLayout 置中標籤。
| 特色 | 說明 |
|---|---|
| 純 AWT 實作 | 無需 Swing 相依,JDK 1.0+ 即可執行 |
| 事件處理模型 | 採用 Java 1.1 委派事件模型(ActionListener、WindowAdapter) |
| 跨平台原生外觀 | AWT 元件對應各平台原生控制項,風格隨作業系統變化 |
| 功能不完整 | 儲存/開啟實際 I/O 邏輯缺失、查找/取代/字體/段落功能僅有選單項目無實作 |
JFrame, JTextArea, JFileChooser) 獲得一致跨平台外觀與豐富功能try-with-resources 確保檔案串流正確關閉