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

3
我有一个简单的BorderPane实例,它是我的Scene的根节点。BorderPane在右侧包含一个面板,其中包括一个按钮等GUI控件。当我点击此按钮时,我创建了一个类(Foo),它继承自StackPane,并将此实例作为中心节点放入边框窗格中。
我想从Foo实例中获取边框窗格可用中心空间的宽度和高度值,通过调用this.getLayoutBounds.getWidth()和...getHeight(),但它总是返回零?
1个回答

6

将一个监听器添加到StackPane的layoutBoundsProperty或者绑定它的height和width属性。

在执行布局之前,JavaFX会将StackPane的高度和宽度都设置为0。因为StackPane是可调整大小的节点,所以通常在将它添加到场景并显示在舞台上之前,JavaFX无法确定它的大小。

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

随着可用区域的变化,未来的布局过程可能会重新调整StackPane的大小,因此建议使用监听器或绑定来始终了解当前窗格的大小。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接