iT邦幫忙

2025 iThome 鐵人賽

0

在學會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 會怎麼修改程式,
再動手嘗試把它整合到你的專案裡吧!


上一篇
Day 18:Java 專案設計流程
下一篇
Day 20:ChatGPT 幫你規劃 Notion 任務管理
系列文
生成式 AI 從入門到實作:用 ChatGPT 打造你的第一個 AI 幫手30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言