我应该使用哪种布局来实现两列20%和80%(Java)?

时间:2012-05-28 15:05:34

标签: java swing swt layout-manager

我想实现以下目标:

enter image description here

第一列占总宽度的20%,第二列占80%。它应该是动态的(例如,当我扩展/缩小时,它应该像css中的液体布局一样相应地改变)

4 个答案:

答案 0 :(得分:3)

MigLayout是你最好的朋友:http://www.miglayout.com

代码如下所示:

JPanel panel = new JPanel(new MigLayout("wrap 2, fill", "[fill,20%][fill,80%]"));
panel.add(panel1);
panel.add(panel2);

答案 1 :(得分:3)

对于Swing,您将使用网格布局。

您有两列,一行。

将设置gridwidth属性,使第一列为.2,第二列为.8或任何数字集,使第一列的值为第二列的值的1/4。

两列的网格高度应该相同。

你可以尝试一下填充。如果您不介意UI中未填充组件的空间,请使用none。如果你希望它们很好地调整大小,但保持.2到.8的比例,那么尝试水平,看看是否自动保持适当的比例。

如果没有,则尝试将权重设置为.2表示第一列,.8表示第二列。无论用户使用多大的JPanel,你都试图保持2比0.8的比例。

如果您需要更多帮助,请告诉我。

答案 2 :(得分:2)

如果您询问桌面java应用程序(基于Swing),可以使用GridBagLayout - JDK附带标准布局。虽然有点难以理解。 http://docs.oracle.com/javase/tutorial/uiswing/layout/gridbag.html

最好的解决方案是制作自己的布局 - 根本不是那么难。

答案 3 :(得分:2)

GridBagLayout比人们更害怕。

我曾经在一个应用程序上工作,大多数屏幕都有页眉和左侧导航面板。然后我使用了Gridbag布局,只在调整大小时提供了所需的行为。曾经使用过visualcafe。

您的两个列要求似乎是一个很好的开始使用Gridbag,因为只会影响几个gridbag约束。 如果你有更多的行/列,我建议使用工具来构建UI。