[英]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.