StackOverFlow问题
今天第二次敬业的堆栈溢出用户大家好! XD
所以我尝试使用 .setBounds 以网格格式设置这 9 个按钮的位置,它接受 (xCooperative, yCooperative, #ofPixelsWide, #ofPixelsTall)
有人知道更有效/更紧凑的方法来做到这一点吗?即使不使用 .setBounds 我也想知道,毕竟我是来学习的 XD
感谢您的建议
for (int i = 0; i < groupOfButtons.length; i++) {
int x = 0, y = 0;
if (i == 1 || i == 4 || i == 7) {
x = 110;
}
if (i == 2 || i == 5 || i == 8) {
x= 220;
}
if (i > 2 && i < 6) {
y = 110;
}
if (i > 5 && i < 9) {
y = 220;
}
groupOfButtons[i].setBounds(x, y, 100, 100);
}
这不是写这个顺便说一句(这种方式实际上更短,但看起来更困惑):
groupOfButtons[0].setBounds(0, 0, 100, 100);
groupOfButtons[1].setBounds(110, 0, 100, 100);
groupOfButtons[2].setBounds(220, 0, 100, 100);
groupOfButtons[3].setBounds(0, 110, 100, 100);
groupOfButtons[4].setBounds(110, 110, 100, 100);
groupOfButtons[5].setBounds(220, 110, 100, 100);
groupOfButtons[6].setBounds(0, 220, 100, 100);
groupOfButtons[7].setBounds(110, 220, 100, 100);
groupOfButtons[8].setBounds(220, 220, 100, 100);
最佳答案
您需要使用网格布局。然后,您只需添加这些按钮,它就会自动将它们放置在网格格式中。请参阅此文档以获取布局的详细说明:
https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html
如果您需要为项目的其他组件使用除网格布局之外的其他布局,您可以嵌套布局(因此该按钮网格将是另一个布局内的嵌套布局)。
关于Java-高效地执行 .setBounds(int, int, int, int);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38937147/