我有一个简单的BorderPane
实例,它是我Scene
的根节点。边框窗格包括右侧的面板和一些GUI控件,包括一个按钮。当我单击此按钮时,我创建了一个扩展Foo
的类(StackPane
)的实例,并将此实例作为边框窗格的中心节点。
我想分别通过调用Foo
来获取this.getLayoutBounds.getWidth()
实例的边框窗格的可用中心空间的宽度和高度值{{1}但它总是返回零?
答案 0 :(得分:6)
将侦听器添加到StackPane的layoutBoundsProperty或绑定到它的高度和宽度属性。
JavaFX将为StackPane的高度和宽度返回零,直到它对其执行布局传递为止。因为StackPane是一个可调整大小的节点,所以JavaFX通常不知道它将被添加到场景并显示在舞台上之前的大小。
如果你只想知道它的初始大小,你可以在调用stage.Show之后在StackPane上调用getHeight或getWidth。
未来布局传递可能会调整StackPane的大小,因为它的可用区域更改,因此建议您使用侦听器或绑定,如果您希望始终获知当前窗格大小。