javafx повторно использованная инициализация панели - PullRequest
0 голосов
/ 27 марта 2019

Вот моя ситуация. У меня есть панель 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?

...