JFrame 是頂層窗口容器,支持最大化/最小化/關閉。JPanel 作為內容面板承載組件。JLabel 顯示文本/圖標。
import javax.swing.*;
public class JFHelloWorld {
public static void main(String[] args) {
// 1. 創建窗口
JFrame frame = new JFrame("Hello World Demo");
// 2. 創建標籤
JLabel label = new JLabel("Hello World!");
// 3. 創建面板並添加標籤
JPanel panel = new JPanel();
panel.setLayout(null); // 絕對佈局
label.setBounds(125, 75, 100, 20); // x, y, width, height
panel.add(label);
// 4. 將面板放入窗口內容區
frame.getContentPane().add(panel);
// 5. 設置窗口屬性
frame.setSize(300, 200);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 點擊關閉退出 JVM
}
}
| 步驟 | 說明 |
|---|---|
new JFrame(title) | 構造帶標題的窗口,默認不可見 |
panel.setLayout(null) | 使用絕對定位,需手動調用 setBounds |
frame.getContentPane().add() | 內容面板是分層面板的容器層,直接加組件會有警告 |
setDefaultCloseOperation(EXIT_ON_CLOSE) | 關閉窗口時調用 System.exit(0),否則僅隱藏窗口 |
FlowLayout:默認,左右流式排列。BorderLayout:五大區域(北/南/東/西/中)。GridLayout:規則網格。BoxLayout:單行/單列盒子佈局。GridBagLayout:最靈活但最複雜的網格包佈局。初學者可先用 null 佈局理解坐標系統,實際項目推薦使用 MigLayout (第三方) 或組合標準佈局。
彈出 300×200 窗口,標題欄顯示 "Hello World Demo",內容區域 (125,75) 處顯示 "Hello World!" 文本。