3

我刚开始在 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);
  }
}

这是输出的样子: MigLayoutTest 结果

这就是我想要“向东停靠”按钮的地方: MigLayoutTest 预期结果

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

谢谢!

4

1 回答 1

4

您必须指定增长参数

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

小心你如何使用它——它可能不会像你想象的那样工作。这是关于 MigLayout 功能的一个很好的阅读http://www.miglayout.com/QuickStart.pdf

于 2011-07-10T16:47:25.477 回答