В нескольких словах: сначала вызывается конструктор, затем заполняются любые @FXML
аннотированные поля, затем вызывается initialize()
. Поэтому конструктор НЕ имеет доступа к полям @FXML
, относящимся к компонентам, определенным в файле .fxml, тогда как initialize()
имеет к ним доступ.
Цитирование из Введение в FXML :
[...] контроллер может определить метод initialize (), который будет вызываться один раз на контроллере реализации, когда содержимое его связанного документа будет полностью загружено [. ..] Это позволяет классу-исполнителю выполнять любую необходимую пост-обработку содержимого.
blockquote>
У меня есть решение, использующее NimbleKit. Он может вызывать функции Objective C из Javascript.