java MigLayout换行两行
我刚开始使用MigLayout
我阅读了一些文档,包括MigLayout的快速入门指南,并搜索了一些SO问题,但没有找到答案。我相信这是显而易见的,但就像我说的,这是我第一次和这个布局经理在一起
我试图使我的布局中的一行比其他行高一倍
我的代码一开始是:
public GameWindow() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new MigLayout("fill"));
add(new PanelHud(), "grow, span 2, wrap");
add(new PanelWorldView(), "grow");
add(new PanelDetailView(), "grow, wrap");
add(new PanelMenu(), "grow, span 2");
pack();
setVisible(true);
}
产生:
这是一个好的开始,但我想要的是中间一排的高度是上下两排的两倍。起初,我以为我可以让中间的元素跨越两行,但这不起作用:
public GameWindow() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new MigLayout("fill"));
add(new PanelHud(), "grow, span 2, wrap");
add(new PanelWorldView(), "grow, span 1 2");
add(new PanelDetailView(), "grow, span 1 2, wrap");
add(new PanelMenu(), "grow, span 2");
pack();
setVisible(true);
}
看起来中间一行的大小确实正确,但底部一行被替换了。我怎样才能解决这个问题
# 1 楼答案
3种可能的解决方案(我可能有点过火了)
使用自动换行,以便miglayout本身检测整行:
基于单元格进行布局:
使用“增加重量”(尽管对于小窗口大小,这似乎不能保持2:1的比例):