【问题标题】:How to make GridBagLayout more logical如何让 GridBagLayout 更符合逻辑
【发布时间】:2014-04-08 15:16:47
【问题描述】:

我有以下代码:

    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 说明并没有太大帮助。有什么想法吗?

【问题讨论】:

  • 您可能应该改用BorderLayout
  • 我对您的建议是放弃所有布局并使用Mig layout 解决您所有的布局问题。 oracle 提供的布局充其量是非常错误的,除非您对它们有很好的体验,否则很难有效地使用它们。
  • @Quillion Oracle 的哪些特定布局有问题,具体是什么方式?我还没有发现任何标准 LayoutManager 都是这种情况。
  • 为了尽快获得更好的帮助,请发布Minimal Complete Example 来证明问题。很多时候,仅仅创建示例就会暴露问题。
  • @splunebob 我发现他们中的大多数人都犯了最大尺寸/最小尺寸的罪行。总的来说,做最简单的任务很困难,因为一个特性可以覆盖另一个特性。用户编写的非 Oracle 布局使用和理解起来更加愉快。也许 Oracle 布局的学习曲线太高了,所以我从不费心深入研究并保持 Oracle 布局新手。

标签: java swing gridbaglayout


【解决方案1】:

假设您的类从 JPanel 扩展,然后调用 超级(新的 GridBagLayout()) 在构造函数的第一行可能会解决问题...

也尝试添加这一行 c.width=GridBagConstaints.REMAINDER;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-04
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    • 2013-09-15
    • 2020-07-13
    • 2012-11-17
    • 1970-01-01
    相关资源
    最近更新 更多