我正在使用 MigLayout,我想创建一个效果,比如使用 BoxLayout 的“胶水”来创建一个不可见的空间,该空间将灵活地填充两个组件之间的区域。从教程:
我了解在 MigLayout 中,间隙用于在组件之间创建空间。我可以用"gap 10"
. MiG Layout Cheatsheet 说我可以附加push
到带有间隙的绑定大小以“使该间隙“贪婪”并占用任何剩余空间”(例如"gap rel:push"
),但这在我的以下代码中似乎不起作用我试过:
JFrame frame = new JFrame("Test");
JPanel panel = new JPanel(new MigLayout());
JLabel label1 = new JLabel("Testing");
label1.setBorder(BorderFactory.createLineBorder(Color.black)); //Border to clearly show JLabel boundaries
panel.add(label1, "");
JLabel label2 = new JLabel("Testing Once Again");
label2.setBorder(BorderFactory.createLineBorder(Color.black)); //Border to clearly show JLabel boundaries
panel.add(label2, "gap rel:push");
frame.setContentPane(panel);
frame.pack();
frame.setMinimumSize(new Dimension(400, 100));
frame.setPreferredSize(new Dimension(400, 100));
frame.setVisible(true);
它显示一个像这样的窗口:
我希望该"gap rel:push"
参数像上图中的水平胶水一样工作,从而将右侧的 JLabel 一直推到窗口的右边缘,但事实并非如此。
如何使用 MigLayout 获得与 BoxLayout 的胶水相同的效果?我是在滥用"gap"
参数还是有其他方法可以完成它?
另外,我意识到我可以在给出的示例中使用停靠,但我想要一个没有它的答案,因为它在我正在创建的更复杂的布局中不起作用。