【问题标题】:MigLayout - Need help on how to use the dock parameters (or need an alternative)MigLayout - 需要有关如何使用停靠参数的帮助(或需要替代方法)
【发布时间】:2011-10-02 06:13:22
【问题描述】:

我刚开始在 Java 中使用 MigLayout 进行 SWING,到目前为止我真的很喜欢它。但是,唯一的问题是停靠参数似乎不像我想象的那样工作,我无法弄清楚我做错了什么。

问题是:我正在尝试在 JPanel 中添加一个 JButton,并使用 panel.add(button, "east"); 将其停靠在右侧。虽然它实际上使它成为最右边的组件,但它仍然只占用与 flowLayout 中相同的空间。我想做的是坚持面板的右侧。

这里有一些重现问题的可编译代码:

public class MigLayoutTest extends JFrame
{
  public MigLayoutTest()
  {
    setSize(500,500);

    JPanel panel = new JPanel(new MigLayout());
    panel.setBackground(Color.YELLOW);
    setContentPane(panel);
    panel.setSize(500,500);
    panel.add(new JButton("Dock east"), "east");
    panel.add(new JButton("No dock"));
  }

  public static void main(String[] args)
  {
    JFrame frame = new MigLayoutTest();
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
}

输出如下所示:

这里是我想要“向东停靠”按钮的地方:

如果我使用错误的参数,我希望有人能告诉我应该如何让我的按钮停靠在面板的右侧。

谢谢!

【问题讨论】:

    标签: java swing layout miglayout


    【解决方案1】:

    您必须指定增长参数

    new MigLayout("", "[grow]", "[]")
    

    请谨慎使用它 - 它可能不会像您想象的那样工作。这是关于 MigLayout 功能的好读物http://www.miglayout.com/QuickStart.pdf

    【讨论】:

    • 谢谢,它有效!我已经阅读了快速入门 PDF,但我想我不明白其中包含的一些细节。但是有一个问题:为什么我必须使用方括号?通常它意味着可选参数,但在 MigLayout 中似乎不是这样的。另外,如果我省略它们,它的工作原理是一样的(或者看起来至少是这样)
    • 如果您有一个列/行布局,则不必这样做。方括号定义多列/多行边界。我怀疑您的布局中最终会出现多列或多行
    猜你喜欢
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    相关资源
    最近更新 更多