Java-高效地执行 .setBounds(int, int, int, int);

标签 java

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/

相关文章:

c# - 规范模式实现帮助

java - 格式化电话号码?

java - 当测试失败时,Selenium 无法终止浏览器

java - 在 Eclipse 中安装 J9 JRE

java - 参数值 [1] 与预期类型 [java.lang.Boolean] 不匹配

java - Firestore 集合到自定义 ListView

java.net.ConnectException : Connection refused: connect under load

Java ThreadPoolExecutor类的beforeExecute()中的参数

java - Steam 等跨平台桌面应用程序 - 可用的技术有哪些

java - 用于独立服务器的 JProfiler