J 開頭 (JButton, JPanel...)。繪圖基礎容器,三種:
JFrame:視窗應用程式主框架。JDialog:對話框。JApplet:嵌入網頁的 Applet (已淘汰)。public class KyodaiUI extends JFrame { ... }
JPanel, JTabbedPane, JScrollPane。頂層容器也是容器,但不能被其他容器包含。JButton, JLabel, JTextField 等。container.add(component)。| 佈局 | 特點 | 適用場景 |
|---|---|---|
BorderLayout | 五大區域:North, South, East, West, Center | 主視窗整體結構 |
GridLayout | 棋盤狀等分格子 | 計算機按鍵盤、棋盤 |
FlowLayout | 依加入順序左右排列,自動換行 | 工具列、簡單表單 |
三區域:頂部工具列、右側互動區、中間遊戲區 → BorderLayout 最適合。
public KyodaiUI() {
setSize(780, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setTitle("連連看");
JPanel toolBar = new JPanel();
toolBar.setBackground(Color.WHITE);
toolBar.setPreferredSize(new Dimension(780, 48));
JPanel actionPanel = new JPanel();
actionPanel.setBackground(Color.YELLOW);
actionPanel.setPreferredSize(new Dimension(160, 380));
JPanel contentPanel = new JPanel();
contentPanel.setBackground(Color.BLUE);
contentPanel.setPreferredSize(new Dimension(620, 380));
getContentPane().add(toolBar, BorderLayout.NORTH);
getContentPane().add(actionPanel, BorderLayout.EAST);
getContentPane().add(contentPanel, BorderLayout.CENTER);
}
關鍵差異:Swing 中必須用 getContentPane().add(...) 加入元件,而非直接 add(...) (AWT 允許)。
後續將實作工具列選單、遊戲區棋盤佈局 (GridLayout)、互動區元件、遊戲邏輯與動畫。