获取BorderPane(JavaFX 2)中心空间的宽度和高度

时间:2012-09-28 15:40:41

标签: java javafx-2

我有一个简单的BorderPane实例,它是我Scene的根节点。边框窗格包括右侧的面板和一些GUI控件,包括一个按钮。当我单击此按钮时,我创建了一个扩展Foo的类(StackPane)的实例,并将此实例作为边框窗格的中心节点。

我想分别通过调用Foo来获取this.getLayoutBounds.getWidth()实例的边框窗格的可用中心空间的宽度和高度值{{1}但它总是返回零?

1 个答案:

答案 0 :(得分:6)

将侦听器添加到StackPane的layoutBoundsProperty或绑定到它的高度和宽度属性。

JavaFX将为StackPane的高度和宽度返回零,直到它对其执行布局传递为止。因为StackPane是一个可调整大小的节点,所以JavaFX通常不知道它将被添加到场景并显示在舞台上之前的大小。

如果你只想知道它的初始大小,你可以在调用stage.Show之后在StackPane上调用getHeight或getWidth。

未来布局传递可能会调整StackPane的大小,因为它的可用区域更改,因此建议您使用侦听器或绑定,如果您希望始终获知当前窗格大小。