2016-04-30 49 views
0

我有以下问题。我这有垂直框包裹在一个AnchorPane:JavaFX/FXML - 获取VBox的高度

<AnchorPane> 
    <children> 
     <VBox fx:id="sidebar" prefHeight="400.0" prefWidth="150.0" AnchorPane.bottomAnchor="0.0" AnchorPane.topAnchor="0.0"/> 
    </children> 
</AnchorPane> 

而且我想这个VBOX的显示高度(甚至后如调整大小Anchorpane周围)
所以我试过如下:

double height = sidebar.getHeight(); 

但由于某种原因getHeight()只返回0.所以...我如何获得该vbox的高度?

回答

0

有几个可能的原因,为什么getHeight()返回'0'。

  1. 您的VBox不包含任何孩子。
  2. 它还没有在SceneGraph呢。
+0

我刚刚意识到您为vbox设置了锚定约束。所以'sidebar.getHeight()'应该返回一个等于'AnchorPane'高度的值。你确定你使用了正确的侧边栏参考吗? – jns

+0

好的,我现在已经把孩子加入了VBox。我之前在Controller的初始化方法中使用了getHeight(),它返回0.现在我编写了一个方法,它返回按钮按下时的高度,它在那里工作。 – Mark

+0

或者3.“VBox”还没有完全展开...... – fabian