簡體   English   中英

Java中的網格布局行為

[英]Grid Layout behaviour in java

為什么當我運行此代碼時,窗口有3列和10行? 我認為應該有10列和10行。

碼:

JFrame frame = new JFrame();
Container container = frame.getContentPane();
container.setLayout(new GridLayout(10,10));
for (int i = 0; i < 5; i++) {
    for (int j = 0; j < 5; j++) {
        if (i >= j) {
            container.add(new JButton("X"));
        } else {
            container.add(new JLabel("*"));
        }
    }
}
frame.setSize(500, 500);
frame.setVisible(true);

您僅向網格添加了25個項目,因此布局優先保留您輸入的行數,並添加足夠的列以填充所添加的項目。 如果要10乘10,則需要添加更多項(空JLabel將起作用)作為占位符組件。

如果要10列和可變的行數,請使用以下設置:

container.setLayout(new GridLayout(0, 10));

編輯
根據GridLayout API

通過構造函數或setRows和setColumns方法將行數和列數均設置為非零值時,將忽略指定的列數。 相反,列數由指定的行數和布局中組件的總數確定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM