MigLayout只在最后一行增长

时间:2013-06-26 10:38:23

标签: java swing jpanel layout-manager miglayout

我希望只增加面板中的最后一个组件来填充剩余的垂直空间。

我目前有:

panel.setLayout(new MigLayout("inset 0, filly", "[grow, fill, right][grow, fill, left]"));

在每个组件之后添加填充以填充剩余的垂直空间。有没有办法告诉MigLayout不要添加填充并增长最后一行?

最后一行停靠,可以改变任何内容:

panel.add(new JScrollPane(getTable()), "newline, dock south");

哦,还有一件事我忘了提及(这可能很重要)在编译时不知道行数。

2 个答案:

答案 0 :(得分:2)

我通过添加:height :100%:的组件约束并删除filly布局约束来解决此问题。

我的理解是,这告诉组件它没有最小尺寸,首选尺寸是它的容器的100%。这意味着它将占用尽可能多的空间。

所以当你使用大小约束:pref:时,我相信它会说“达到指定的大小”

当你做min::时,我认为这解析为“至少指定的尺寸”?

答案 1 :(得分:2)

看起来码头确实有所作为,用pushy增长单元格约束替换它(并且在布局约束中没有任何小号)工作正常。如果你能在没有码头的情况下生活,那么可能是一个选择:

panel.add(new JScrollPane(new JTable(8, 5)), "span, pushy, growy");