Java 提供兩套 GUI 庫:早期 AWT (依賴原生 Peer) 與 Swing (純 Java、跨平台優異)。建立 GUI 三步驟:選容器、定佈局、加元件。本文以 JFrame 為主視窗,JPanel 為無標題邊框容器,BorderLayout 為佈局管理器,示範多面板組合。
JPanel:輕量級容器,無標題欄邊框,常作子面板承載元件群。JTextField:單行文字輸入框。JRadioButton:單選鈕,產生 Action/Item 事件。JComboBox:下拉選單。BorderLayout:五區域 (NORTH, SOUTH, EAST, WEST, CENTER) 邊界佈局。import javax.swing.*;
import java.awt.*;
public class PanelLayoutDemo {
public JPanel createNorthPanel() {
JPanel p = new JPanel();
p.add(new JLabel("沒有人可以代替你!", JLabel.CENTER));
return p;
}
public JPanel createCenterPanel() {
JPanel p = new JPanel();
p.add(new JLabel("我愛你!", JLabel.CENTER));
return p;
}
public JPanel createSouthPanel() {
JPanel p = new JPanel();
p.add(new JButton("確定嗎?"));
p.add(new JButton("愛我!"));
return p;
}
public static void main(String[] args) {
JFrame frame = new JFrame("面板佈局示範");
PanelLayoutDemo demo = new PanelLayoutDemo();
frame.add(demo.createNorthPanel(), BorderLayout.NORTH);
frame.add(demo.createCenterPanel(), BorderLayout.CENTER);
frame.add(demo.createSouthPanel(), BorderLayout.SOUTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 250);
frame.setVisible(true);
}
}
視窗頂部 (NORTH) 顯示標籤「沒有人可以代替你!」,中部 (CENTER) 顯示「我愛你!」,底部 (SOUTH) 並排兩按鈕「確定嗎?」「愛我!」。面板封裝使主程式碼清晰易維護,符合單一職責原則。