JavaFX Scene Builder — как я могу получить доступ к компонентам

Я создал графический интерфейс с помощью приложения для создания сцен. Я загрузил его в свое приложение, но хочу добавить компоненты в VBox, скрытый в дизайне. Кажется, все, что у меня есть доступ к использованию, это AnchorPanel, который возвращается из FXMLLoader.load.

Есть ли более элегантный способ, чем сверлить дочернее дерево, чтобы добраться до компонента, который я хочу?

Спасибо.


person merjr    schedule 17.09.2013    source источник


Ответы (1)


Если вам нужно добавить в VBox из какого-то случайного класса:

  1. дать fx:id VBox, скажем "vbox"
  2. создайте контроллер для представления и свяжите его с представлением в FXML
  3. в контроллере добавьте @FXML VBox vbox; (где vbox это то же самое, что и fx:id)
  4. извлеките контроллер из FXMLLoader и получите доступ к VBox: controller.vbox;.

Если вам просто нужно что-то добавить в VBox при загрузке представления, выполните шаги с 1 по 3 выше и добавьте соответствующий код в метод инициализации контроллера.

person assylias    schedule 17.09.2013
comment
Ваша ссылка показала мне, где я ошибся. Я использовал статическую загрузку (URL) вместо загрузки FXMLLoader (поток). Спасибо! - person merjr; 17.09.2013