良好的 GUI 設計應將「界面佈局」與「事件邏輯」分離。本文通過 AWT 實現一個帶關閉按鈕的窗口,展示標準化類結構與事件註冊流程。
FrameDemoFrame frame、Button buttoninit() 初始化 UIaddEventAction() 註冊事件import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class FrameDemo {
private Frame frame;
private Button button;
public FrameDemo() {
init();
}
/** 初始化 UI 組件與佈局 */
public void init() {
frame = new Frame("測試窗體");
frame.setBounds(300, 200, 200, 200); // x, y, width, height
frame.setLayout(new FlowLayout());
button = new Button("退出");
frame.add(button);
frame.setVisible(true);
addEventAction();
}
/** 註冊事件監聽器 */
public void addEventAction() {
// 窗口關閉事件:使用 WindowAdapter 適配器避免實現 7 個方法
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
// 按鈕點擊事件:匿名內部類實現 ActionListener
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
}
public static void main(String[] args) {
new FrameDemo();
}
}

init() 負責佈局,addEventAction() 負責行為,符合單一職責原則WindowAdapter 為 WindowListener 提供空實現,僅需重寫關心的方法ActionListener,捕獲外部上下文,簡潔高效FlowLayout 從左到右、從上到下自動排列組件AWT 為 Java 早期 GUI 庫,功能有限、原生外觀。實際項目建議使用: