gpt4 book ai didi

java - 为什么 swing 布局管理器自下而上工作?

转载 作者:行者123 更新时间:2023-11-30 07:23:08 25 4
gpt4 key购买 nike

http://docs.oracle.com/javase/tutorial/uiswing/layout/howLayoutWorks.html我们可以阅读:

“最终结果是,为了确定容器的最佳大小,系统会确定容器层次结构底部的容器大小。然后这些大小向上渗透容器层次结构,最终确定容器的总大小。 "

此评论与特定布局管理器无关,但似乎适用于通用布局机制。

如果经验丰富的 Java/Swing 程序员能够解释为什么这种方法比自上而下的方法更好,我将不胜感激。

在自上而下的方法中,顶层容器会告诉它的组件:- 嘿组件你有 WxH 像素来布局自己!- 然后这些组件最终会告诉它们自己的组件做同样的事情。根据可用空间,每个组件将决定如何布局其向下进入层次结构的子组件。最终,一些组件可能会决定在空间不足的情况下不自行绘制。

在我看来,这种方法(对于程序员)更容易理解和维护。

有人知道自上而下工作的替代布局管理器吗?

谢谢。

最佳答案

我觉得你应该再读一遍那句话

The end result is that to determine the best size for the container, the system determines the sizes of the containers at the bottom of the containment hierarchy. These sizes then percolate up the containment hierarchy, eventually determining the container's total size.

这讨论了容器的最佳尺寸。这当然是由所有子组件的最佳大小决定的,因此最好从下到上计算。

这是在 JFrame 上调用 pack 方法时发生的情况。

但是,子组件最终只能占用其父组件所允许的空间,这是事实。这就是 LayoutManager 发挥作用的地方:您在父组件上设置布局管理器,它会告诉子组件它们的位置和大小(通常会考虑子组件指示的首选大小等事项)

关于java - 为什么 swing 布局管理器自下而上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12200902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com