Java布局忽略的属性文档

4
有没有一张表格记录了每个Java布局忽略哪些属性(最大大小、最小大小等)?

你想了解特定的布局管理器吗?还是有特定效果需要实现? - jjnguy
@Justin'jjnguy'Nelson 不,没有特定的布局管理器。在使用Swing GUI时,我经常遇到很多随机问题,因为许多布局不尊重所有属性。例如,当使用框布局并将组件添加到North时,该组件将不会尊重maxHorizontalSize。而这在文档中并没有描述。 - The Student
是的,在BorderLayout中,North和South始终会占据最大的水平空间。East和West始终会占据整个高度。 - jjnguy
@Justin'jjnguy'Nelson 是的,这个有文档记录吗? - The Student
你所需要的大部分属性都在管理器的Javadocs中指定。有时候解释它们的意思可能会有点困难。 - jjnguy
1个回答

1
许多这些属性在特定类的javadocs中指定。例如,BorderLayouts的行为被指定为:
组件根据其首选大小和容器大小的约束进行布局。 NORTHSOUTH组件可以水平拉伸;EASTWEST组件可以垂直拉伸;CENTER组件可以水平和垂直拉伸以填充剩余的任何空间。
FlowLayout则指定:
流式布局使每个组件都采用其自然(首选)大小。 GridLayout在构造函数的文档中指定:
布局中的所有组件都被赋予相等的大小。[无论网格有多大]
BoxLayout 表示:
BoxLayout试图以组件的首选宽度(对于水平布局)或高度(对于垂直布局)来排列组件。对于水平布局,如果不是所有组件都具有相同的高度,则BoxLayout尝试使所有组件的高度与最高组件一样高。如果对于特定组件无法实现这一点,则BoxLayout根据组件的Y对齐方式在垂直方向上对齐该组件。默认情况下,组件的Y对齐方式为0.5,这意味着组件的垂直中心应具有与其他具有0.5 Y对齐的组件的垂直中心相同的Y坐标。
类似地,对于垂直布局,BoxLayout尝试使列中的所有组件都与最宽的组件一样宽。如果失败,则根据它们的X对齐方式在水平方向上对齐它们。对于PAGE_AXIS布局,水平对齐是基于组件的前沿完成的。换句话说,如果容器的ComponentOrientation从左到右,则X对齐值为0.0表示组件的左边缘,否则表示组件的右边缘。

我希望有一个总结表,但似乎没有。不管怎样,谢谢。 - The Student
@Tom,看起来文档真的很分散,有点糟糕。 - jjnguy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接