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