天天看點

JavaSwing_1.2: GridLayout(網格布局)

參考資料:xietansheng-JavaSwing圖形界面開發

1. 概述

官方JavaDocsApi: ​​java.awt.GridLayout​​

GridLayout,網格布局管理器。它以矩形網格形式對容器的元件進行布置,把容器按行列分成大小相等的矩形網格,一個網格中放置一個元件,元件寬高自動撐滿網格。

以行數和總數優先: 通過構造方法或 setRows 和 setColumns 方法将行數和列數都設定為非零值時,指定的列數将被忽略。列數通過指定的行數和布局中的元件總數來确定。

是以,例如,如果指定了三行和兩列,在布局中添加了九個元件,則它們将顯示為三行三列。僅當将行數設定為零時,指定列數才對布局有效。

GridLayout構造方法:

// 預設構造, 每個元件占據一行一列
GridLayout() 

// 指定 行數 和 列數 的網格布局
GridLayout(int rows, int cols)

// 指定 行數 和 列數 的網格布局, 并指定 水準 和 豎直 網格間隙
GridLayout(int rows, int cols, int hgap, int vgap)      

2. 代碼示範

package com.he.swing;

import javax.swing.*;
import java.awt.*;

public class Main {

    public static void main(String[] args) {
        JFrame jf = new JFrame("測試視窗");
        jf.setSize(200, 250);
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        jf.setLocationRelativeTo(null);

        // 建立 3 行 3 列 的網格布局
        GridLayout layout = new GridLayout(3, 3);
        
        // 設定 水準 和 豎直 間隙
        // layout.setHgap(10);
        // layout.setVgap(10);
        
        JPanel panel = new JPanel(layout);

        JButton btn01 = new JButton("按鈕01");
        JButton btn02 = new JButton("按鈕02");
        JButton btn03 = new JButton("按鈕03");
        JButton btn04 = new JButton("按鈕04");
        JButton btn05 = new JButton("按鈕05");
        JButton btn06 = new JButton("按鈕06");
        JButton btn07 = new JButton("按鈕07");
        JButton btn08 = new JButton("按鈕08");

        panel.add(btn01);
        panel.add(btn02);
        panel.add(btn03);
        panel.add(btn04);
        panel.add(btn05);
        panel.add(btn06);
        panel.add(btn07);
        panel.add(btn08);

        jf.setContentPane(panel);
        jf.setVisible(true);
    }
}      

結果展示: