在學會Java的基礎語法、物件導向與集合後
今天我們終於要實作一個「小專案」來應用這些知識了!
這次的目標是:打造一個簡易記事本程式(Notepad)
透過ChatGPT的協助,從UI設計、事件處理到檔案存取,一步完成
一、專案目標
我們要製作一個可以:
1.開啟文字檔案
2.編輯文字內容
3.儲存檔案
4.顯示文字長度或狀態欄
的簡易版記事本程式
最棒的是——這次你不用自己從零開始寫,
只要用對Prompt,AI就會幫你生出骨架程式
二、用ChatGPT幫你生出UI架構
輸入以下指令給ChatGPT:
幫我用Java Swing寫一個簡易記事本程式,包含開啟、儲存、清除文字三個功能
ChatGPT會生成類似這樣的程式碼
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class SimpleNotepad extends JFrame {
private JTextArea textArea;
private JButton openButton, saveButton, clearButton;
public SimpleNotepad() {
setTitle("AI記事本");
setSize(500, 400);
setDefaultCloseOperation(EXIT_ON_CLOSE);
textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textArea);
openButton = new JButton("開啟");
saveButton = new JButton("儲存");
clearButton = new JButton("清除");
JPanel panel = new JPanel();
panel.add(openButton);
panel.add(saveButton);
panel.add(clearButton);
add(panel, BorderLayout.NORTH);
add(scrollPane, BorderLayout.CENTER);
openButton.addActionListener(e -> openFile());
saveButton.addActionListener(e -> saveFile());
clearButton.addActionListener(e -> textArea.setText(""));
}
private void openFile() {
JFileChooser fileChooser = new JFileChooser();
if (fileChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) {
try (BufferedReader reader = new BufferedReader(
new FileReader(fileChooser.getSelectedFile()))) {
textArea.read(reader, null);
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
private void saveFile() {
JFileChooser fileChooser = new JFileChooser();
if (fileChooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {
try (BufferedWriter writer = new BufferedWriter(
new FileWriter(fileChooser.getSelectedFile()))) {
textArea.write(writer);
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new SimpleNotepad().setVisible(true));
}
}
執行後,就能開啟一個可輸入文字、開啟與儲存檔案的視窗
三、讓ChatGPT幫你「優化與改版」
接著你可以請ChatGPT幫你升級:
幫我加上狀態列,顯示目前字數與行數
幫我在記事本中新增「搜尋文字」功能
幫我改成使用JMenuBar,而不是三個按鈕
AI就會幫你重構整個UI、加功能、改排版
有時候還會順便教你:
為什麼要用JMenuItem
為什麼要用ActionListener 而不是MouseListener
這就像有個程式家教,一邊寫一邊講解
四、學習Debug的技巧
遇到錯誤時,你可以這樣問:
我的程式出現NullPointerException 在 textArea.write(writer),幫我看問題在哪?
ChatGPT會說明問題原因(例如物件未初始化)並建議修法
這樣不只是修錯,而是學會 Debug 思考
五、延伸挑戰
如果你想再進一步,AI 也能幫你:
加入自動儲存功能
增加「字型大小」選單
新增「深色模式」
只要一句話,程式就能一步步變成「你的專屬記事本」
🎯 今日任務
輸入:
幫我在記事本程式中新增「搜尋關鍵字」的功能,搜尋後將文字反白。
看看 ChatGPT 會怎麼修改程式,
再動手嘗試把它整合到你的專案裡吧!