如何在swing java中使用布局管理器

我是Flowborders ,…等布局管理员的新手。
我主要使用setBounds()来设置组件的位置。

我读了一篇文章,使用setBounds 不是一个好习惯,最好使用一些布局。

哪些是最好和最常用的布局?
如何使用布局管理器定位按钮 ; 而不是做setbounds(10,10,100,30)

看这里: http : //download.oracle.com/javase/tutorial/uiswing/layout/using.html

基本上你应该忘记坐标。 在更高级别的设计中查看对话框。 你应该问自己的问题。

1)您的设计中是否存在周围区域较小的“主”区域。 如果是这样,请使用BorderLayout。

2)您的设计中是否存在类似于网格的网格,如果是这样,请使用GridLayout。

3)如果您需要自上而下或左右布局,请考虑使用BoxLayout

4)如果要显示复杂的表单,可能使用jgoodies中的FormLayout。

但你必须从高层次看待事物。 对话框的任何一个顶级部分都可能有子部分。 如果是这种情况,那么您需要在该部分中放置JPanel,然后在该JPanel中使用子布局。 再次对该小组使用上述问题。

除了“标准”Swing布局(JDK的一部分),还有许多第三方(主要是开源) LayoutManager ,它们通常比Swing好得多。

有关实际示例(带代码)的许多LayoutManagers的比较,请查看此链接 ,虽然有点旧 ,但它仍然显示了当今主流LayoutManagers的各种function和易用性。

一般来说,我会建议DesignGridLayout虽然非常强大,但它非常容易使用(你不需要使用GUI设计器,并且很容易维护现有面板的布局代码); 它需要一个小时来理解它。

此外, MigLayout被认为是最灵活的(如果你需要非常复杂的布局可能会很有用),但它需要更多的时间来适应它,有时你必须使用“技巧”使它按你想要的方式工作。

..哪个是最好最常用的布局(?)

嵌套布局。 使用适用于不同GUI组件组的最佳布局,然后将它们放在其他面板内的面板中(使用其他布局)。 有关演示,请参阅此嵌套布局示例 。 结合布局。

至于使用哪种最佳的个人布局,请通过MBFG链接的教程来了解每个人可以实现的目标,优势和劣势。

我通常会使用BorderLayoutGridLayoutFlowLayout嵌套组合,偶尔使用GridBagLayout