嘿,我做了 3 个 for 循环来创建 3 个不同的 JButton 数组。然后我将其放入网格布局中。左侧和右侧效果很好,但中心只会填满面板。
这是我的右侧代码:
rightPanel = new JPanel();
rightPanel.setLayout(new GridLayout(12, 4, 5, 5));
rightPanel.setBorder(new EmptyBorder(10 ,10 ,10 ,10));
for (int a = 0; a < 12; a++) {
for (int b = 0; b < 4; b++) {
battons[b][a] = new feedbackKnop.RechterKnop();
battons[b][a].setPreferredSize(new Dimension(50, 50));
rightPanel.add(battons[b][a]);
battons[b][a].setEnabled(false);
}
}
这是我的中心代码:
btnPanel = new JPanel();
btnPanel.setLayout(new GridLayout(12, 4, 5, 5));
btnPanel.setBorder(new EmptyBorder(10 ,10 ,10 ,10));
for (int i = 0; i < 12; i++) {
for (int j = 0; j < 4; j++) {
buttons[j][i] = new KleurenButton("");
buttons[j][i].setPreferredSize(new Dimension (50, 50));
btnPanel.add(buttons[j][i]);
buttons[j][i].setEnabled(false);
}
}
我希望它的大小像右侧的圆圈
结果:
最佳答案
GridLayout 使所有网格具有相同的大小,而 BorderLayout 则扩展中心以填充窗口。要解决此问题,您需要强制固定窗口大小(或以特定的纵横比),或者选择不会自动扩展其组件的不同布局。 GroupLayout很受欢迎。
关于Java:JButton数组不会改变大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15372683/