Java:JButton数组不会改变大小

标签 java swing size

嘿,我做了 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);

        }

    }

我希望它的大小像右侧的圆圈

结果:

result

最佳答案

GridLayout 使所有网格具有相同的大小,而 BorderLayout 则扩展中心以填充窗口。要解决此问题,您需要强制固定窗口大小(或以特定的纵横比),或者选择不会自动扩展其组件的不同布局。 GroupLayout很受欢迎。

关于Java:JButton数组不会改变大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15372683/

相关文章:

java - Java中catch block 中return的奇怪问题

java - Window 类型的 setOpacity(float) 方法不可见

java - 覆盖 Flamingo 的 JCommandButton 的默认前景色

java - 最大化 JMenuBar 中的 JInternalFrame

Java:为什么迭代器不可复制

java - Android Studio 无法识别 Fragment to Facebook Button

java - JPA - 可以在不提供可选参数的情况下调用存储过程吗?

c - 为什么 C 中函数的大小总是 1 个字节?

PHP json_encode 大小限制?

Python POST 错误 500,仅适用于 Windows 7 且文件大于 1Mb