java - 使GridBagLayout中的组件占据相同的宽度

标签 java swing layout-manager gridbaglayout

如何让GridBagLayout中的组件占据相同的宽度?我尝试过 GridBagConstraint.weightx,但它不起作用。

enter image description here

static void test3() {
    JFrame f = new JFrame("Test");
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setSize(480, 360);
    Container pane = f.getContentPane();
    pane.setLayout(new GridBagLayout());

    String[] a = {
            "Lorem ipsum dolor sit amet",
            "consectetur adipisicing",
            "elit, ",
            "sed do",
            "eiusmod",
    };
    for (int i = 0; i < 5; i++) {
        GridBagConstraints c = new GridBagConstraints();
        c.gridx = i % 3;
        c.gridy = i / 3;
        c.weightx = 0.5;
        c.fill = GridBagConstraints.HORIZONTAL;
        f.add(new JButton(a[i]), c);
    }
    f.setVisible(true);
}

最佳答案

对 View 的该部分使用GridLayout。它将使按钮全部具有相同的大小,并为最高的组件分配所需的高度,为最宽的组件分配所需的宽度。

I have tried GridBagConstraint.weightx, but it doesn't work.

weightx 约束更多地与如何在调整 GUI 大小时分配额外宽度或高度有关,但单元格将以最小高度/宽度开始该行/列的需求。

关于java - 使GridBagLayout中的组件占据相同的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40547456/

相关文章:

java - 如何将 JDBC azure sql 服务器连接到 Android 应用程序?

java使用匿名类排序

Java/Swing : Desktop. open() 导致 GTK-ERROR

java - 将非字符串变量显示到 JLabel

Java GridBagLayout 无法正确设置我的 GUI

java - 如何在 Eclipse 调试中添加 JAVA 命令行参数

java - ibatis和java中如何处理多个表的sql映射

java - 如何在没有滚动条的情况下根据鼠标移动拖动和调整jLabel的图标?

Java FlowLayout - 特定元素的边距/填充?

java - 我应该为主框架的内容 Pane 使用哪个 LayoutManager?