0

为什么 GroupLayout 需要 Container 作为构造函数的参数,而 BorderLayout 不需要?

我不确定 Container 对象添加了哪些信息,以及为什么 BorderLayout 不需要这些信息。

4

1 回答 1

2

看到这一点的最好方法是查看源代码。构造GroupLayout函数将Component(不是容器,如您所说)保存到名为host. 然后在这些方法中使用该字段:

javax.swing.GroupLayout#adjustSize
javax.swing.GroupLayout#checkParent
javax.swing.GroupLayout#getComponentInfo
javax.swing.GroupLayout#invalidateHost
javax.swing.GroupLayout#isLeftToRight
javax.swing.GroupLayout#replace
javax.swing.GroupLayout.AutoPreferredGapSpring#calculatePadding
javax.swing.GroupLayout.ContainerAutoPreferredGapSpring#calculatePadding
javax.swing.GroupLayout.ContainerAutoPreferredGapSpring#updateSize
javax.swing.GroupLayout.PreferredGapSpring#getPadding

这些方法中的每一种都需要知道Component是谁。例如,adjustSize使用 的插图Component来计算大小。

于 2013-09-17T17:37:16.573 回答