如何在Dialog顶部布置面板,使其有两个按钮?

时间:2009-06-29 13:37:39

标签: java miglayout

我需要在Dialog顶部布置一个面板,使其有两个按钮(Save and Cancel)。

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

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

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:12)

顺便说一下,你可能不应该指示左边或右边的按钮。这是MiGLayout很酷的事情之一(平台独立性,即使是取消按钮应该去的地方)。

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

现在按钮将以正确的顺序显示,基于平台。

这里是an article代码正在执行您的目标。我强烈建议避免尝试强制按钮等组件的大小(这些应该来自平台的外观和感觉)。此外,如果有意义的话,对接很好,但我很少发现它是必要的。而不是为您的按钮构建一个完全独立的面板,只需跨越包含按钮的行 - 更清洁,并且您不会使用所有嵌套面板。

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

答案 1 :(得分:2)

一旦你问了一个问题,总是会发生,答案会突然出现:

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

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