2016-04-30 2 views
0

У меня есть следующая проблема. Я получил эту VBox обернутый в 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. Раньше у меня был getHeight() в initialize-методе моего контроллера, там он возвращался 0. Теперь я написал метод, который возвращает высоту при нажатии кнопки, там она работает. – Mark

+0

Или 3. 'VBox' просто еще не оформлен ... – fabian

Смежные вопросы