Java 如何使GridBagLayout更具逻辑性

Java 如何使GridBagLayout更具逻辑性,java,swing,gridbaglayout,Java,Swing,Gridbaglayout,我有以下代码: c.fill = GridBagConstraints.HORIZONTAL; c.gridx = 1; c.gridy = 0; config.add(first = new JTextArea(), c); c.gridx = 1; c.gridy = 2; config.add(second = new JTextArea(), c); c.gridx = 1; c.gridy = 10;

我有以下代码:

    c.fill = GridBagConstraints.HORIZONTAL;
    c.gridx = 1;
    c.gridy = 0;
    config.add(first = new JTextArea(), c);

    c.gridx = 1;
    c.gridy = 2;
    config.add(second = new JTextArea(), c);

    c.gridx = 1;
    c.gridy = 10;
    c.anchor = GridBagConstraints.PAGE_END;

    config.add(bottom, c);
现在我得到了以下截图:


“底部”由按钮面板控制。首先,两个文本字段合并在一起,按钮应该在底部。查看关于GridBagLayout的Oracle说明并没有太大帮助。有什么想法吗?

假设您的类从JPanel扩展而来,然后调用 超级(新GridBagLayout()) 在构造器的第一行可以解决这个问题

也可以尝试添加这一行
c、 宽度=gridbagconstants.rements

您可能应该使用
边框布局
。我给您的建议是放弃所有布局,使用它解决所有布局问题。oracle提供的布局最多是有缺陷的,除非您有很好的使用经验,否则很难有效地使用。@Quillion oracle提供的哪些特定布局有缺陷,具体是以什么方式?我还没有发现任何标准的布局经理都是这样。为了更快地得到更好的帮助,请发布一篇文章来说明这个问题。很多时候,仅仅创建一个例子就会揭示问题所在。@splungebob我发现他们中的大多数人都犯了max size/min size的错误。总的来说,完成最简单的任务是困难的,因为一个功能可以覆盖另一个功能。用户编写的非Oracle布局更易于使用和理解。也许Oracle布局的学习曲线太高了,所以我从来没有费心深入研究并保持Oracle布局的noob。