我希望只增加面板中的最后一个组件来填充剩余的垂直空间。
我目前有:
panel.setLayout(new MigLayout("inset 0, filly", "[grow, fill, right][grow, fill, left]"));
在每个组件之后添加填充以填充剩余的垂直空间。有没有办法告诉MigLayout不要添加填充并增长最后一行?
最后一行停靠,可以改变任何内容:
panel.add(new JScrollPane(getTable()), "newline, dock south");
哦,还有一件事我忘了提及(这可能很重要)在编译时不知道行数。
答案 0 :(得分:2)
我通过添加:height :100%:
的组件约束并删除filly
布局约束来解决此问题。
我的理解是,这告诉组件它没有最小尺寸,首选尺寸是它的容器的100%。这意味着它将占用尽可能多的空间。
所以当你使用大小约束:pref:
时,我相信它会说“达到指定的大小”
当你做min::
时,我认为这解析为“至少指定的尺寸”?
答案 1 :(得分:2)
看起来码头确实有所作为,用pushy增长单元格约束替换它(并且在布局约束中没有任何小号)工作正常。如果你能在没有码头的情况下生活,那么可能是一个选择:
panel.add(new JScrollPane(new JTable(8, 5)), "span, pushy, growy");