4

我需要在我的对话框顶部布局一个面板,以便它有两个按钮(保存和取消)。

我希望保存在左侧,取消在右侧。

我已经使用 MigLayout 创建了一个 JPanel 并将其停靠在内容窗格的北部,并且我一生都无法弄清楚如何将两个按钮添加到其中,以便它们按我想要的方式显示。将它们停靠在面板中似乎摆脱了对话框中的所有填充(看起来很糟糕)。

任何帮助将不胜感激。

4

2 回答 2

12

顺便说一句,您可能不应该指定哪个按钮在左侧或右侧。这是关于 MiGLayout 的一种很酷的方式(平台独立性,即使在诸如取消按钮应该去的地方)。

p.add(cancelButton, "tag cancel");
p.add(okButton, "tag ok");

现在按钮将根据平台以正确的顺序显示。

是一篇包含代码的文章,可以满足您的需求。我强烈建议避免尝试强制设置按钮等组件的大小(这些确实应该来自平台外观)。此外,如果有意义的话,对接很好,但我很少发现它是必要的。无需为您的按钮构建一个完全独立的面板,只需跨越包含按钮的行 - 更简洁,并且您不会使用所有嵌套面板。

嵌套面板的边框布局技术很难摆脱,但一旦掌握了它,MigLayout 就是一个梦想。顺便说一句 - 我知道有时您可能希望在库中构建按钮面板 - 如果是这种情况,那么单独的面板可能是有意义的(尽管您也可以让库向现有面板添加按钮行,而不是返回一个面板,然后将其添加到布局中)。

于 2009-06-30T03:45:51.817 回答
2

Doh,总是在您提出问题时立即出现答案:

JPanel buttonPanel = new JPanel(new MigLayout("fill","[50][50]",""));
buttonPanel.add(saveChangesButton);
buttonPanel.add(cancelButton, "align right");
getContentPane().add(buttonPanel, "dock north");

请注意,内容窗格也在使用 MigLayout。

于 2009-06-29T13:46:09.877 回答