java - MigLayout - 需要有关如何使用停靠参数的帮助(或需要替代方案)

标签 java swing layout miglayout

我刚开始在 Java 中使用 MigLayout for 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 result

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

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

谢谢!

最佳答案

您必须指定生长参数:

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

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

关于java - MigLayout - 需要有关如何使用停靠参数的帮助(或需要替代方案),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6641489/

相关文章:

java - 隐藏/显示 jtable 中的行

android - 我可以通过 setContentView 显示变量中的 XML 吗?

html - 如何正确使用 flexbox 在 HTML/CSS 中实现 BorderLayout?

java - 将货币格式化为区域设置特定格式

java - 如何更新 JTable 中 DefaultTableModel 的行?

java - JTextField 上的 TitledBorder

javascript - Liquid Grid——人们如何调用它

java - Java 中的 WMA 支持

java - 对对象数组的引用是否指向同一数组的第一个元素?在java中

java - 数组中的数量和出现