Вот моя ситуация. У меня есть панель javafx, которую я не хочу воссоздавать каждый раз, когда я ее показываю, потому что я хочу, чтобы все поля, заполненные пользовательскими полями, между переключениями между представлениями.
Для этого я сделал это:
@FXML
private void initialize() {
createOrderPane = FxmlUtils.fxmlLoader(CREATE_ORDER_FXML);
}
public void setCenter(String fxmlPath) {
if(CREATE_ORDER_FXML.equals(fxmlPath)) {
borderPane.setCenter(createOrderPane);
}
else {
borderPane.setCenter(FxmlUtils.fxmlLoader(fxmlPath));
}
}
поэтому, если пользователь хочет увидеть CREATE_ORDER_FXML, он не перезагружает его, а использует уже существующий экземпляр.
Проблема в том, что некоторые части представления должны быть повторно инициализированы. Например, база данных может измениться, и я хочу обновить комбинированные списки, которые считывают значения из БД. Как этого добиться?
Есть ли свойство onShow? Или, может быть, я могу добраться до контроллера объекта createOrderPane?