2012-05-28 134 views

回答

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); 
+0

据我所知你建议手动解决方案,有没有GIU Builder的拖放布局? – Alex

+0

如果您需要GUI构建器NetBeans有一个可以与MigLayout配合使用的工具:https://blogs.oracle.com/geertjan/entry/registering_miglayout_in_netbeans_ide但是,手动编写代码可能会更快,MigLayout具有非常清晰的语法这使得GUI构建器变得不那么必要。 –

+0

NetBeans不适合,我使用eclipse。 – Alex

2

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

最好的解决方案是制作你自己的布局 - 这并不难。

+1

我只会建议GridBagLayout给我最大的敌人;)http://www.youtube.com/watch?v=UuLaxbFKAcc –

+0

就像我说的很难理解.... :)但对于这种特殊情况下它将工作突出很好 最大的好处是它包含在JDK中 如果附加依赖不是问题,那么MIG布局当然可以工作 – BlacKow

+0

如果您需要GUI构建器并希望保持在“标准”范围内Swing使用NetBeans – BlacKow

2

GridBagLayout比我们更加不理解。

我曾在一个应用程序的大多数屏幕有一个页眉页脚和左侧导航面板。然后我使用Gridbag布局,只有在调整大小时才提供所需的行为。曾经使用过视觉安全。

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

3

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

你有两列,一列。

将设置网格宽度属性,以便第一列为.2,第二列为.8或任何一组数字,以使第一列的值为第二列的1/4值。

两列的gridheight应该是相同的。

你可以用fill来试验一下。如果您不介意UI中未填充组件的空间,请使用none。如果你想让它们很好地调整大小,但保持.2到0.8的比例,请尝试水平并自动保持适当的比例。

如果没有,则尝试将第一列的权重设置为.2,第二列的值设置为.8。无论用户制作的JPanel有多大,都会保持这个比例。

让我知道你是否需要更多帮助。

相关问题