3

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

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

4

1 回答 1

6

将侦听器添加到 StackPane 的 layoutBoundsProperty 或绑定到它的 height 和 width 属性。

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

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

未来的布局通道可能会随着可用区域的变化调整 StackPane 的大小,因此如果您希望始终了解当前窗格的大小,建议使用侦听器或绑定。

于 2012-09-28T17:50:39.063 回答