JavaFx: Смена одного окна на другое

404
11 июля 2017, 19:56

У меня есть такой код:

    @Override
public void start(Stage primaryStage) throws Exception{
    Parent root = FXMLLoader.load(getClass().getResource("main.fxml"));

    primaryStage.setTitle("Hello World");
    primaryStage.setScene(new Scene(root, 800, 600));
    primaryStage.show();
}

Как мне сделать так что бы из совершенно отдельного класса controller заменить main.fxml на server.fxml и соответственно показать его?

Answer 1

Допустим так:

public void onNewOrder(){
    try {
        FXMLLoader loader = new FXMLLoader();
        loader.setLocation(getClass().getResource("/Order/OrderNew.fxml"));
        Parent page = loader.load();
        Stage stage = new Stage();
        stage.setScene(new Scene(page));
        WeakReference<OrderNewController> newOrd = new WeakReference<OrderNewController>(loader.getController());
        newOrd.get().setStage(stage);
        stage.show();
    } catch (IOException ex) {
        logger.error(ex.getMessage());
    }
}

Соответсвенно в классе OrderNewController создан сеттер для Stage и далее он в нем используется. Так же можно через какой нибудь свой класс реализующий SharedPreference передавать.

Для примера в контролллере обрабатываем закрытие окна:

  public void setStage(Stage stage) {
        this.stage=stage;
        this.stage.setOnCloseRequest(new EventHandler<WindowEvent>() {
            public void handle(WindowEvent we) {
                //обработка
            }
        });
    }

Ну и в fxml не забыть явно определить контроллер.

READ ALSO
Сохранение строк с помощью SharedPreferences

Сохранение строк с помощью SharedPreferences

Есть текстовое поле которое при первом запуске пусто и пользователь вбивает в него имяПри повторном запуске в поле имя уже должно отражаться

268
В чем разница между URL Rewriting, encodeURL, encodeRedirectUrl

В чем разница между URL Rewriting, encodeURL, encodeRedirectUrl

URL Rewriting как я понял нужен для поддержания сессии в случае если в браузере отключены куки (Поправьте пожалуйста, если я не прав)

202
Spring Integration Dynamic Outbound mapping

Spring Integration Dynamic Outbound mapping

Добрый день, мне необходимо спроксировать доступ к api с помощью spirng integrationСконфигурировал inboundGateway и outboundGateway

193
Ошибка с преобразованием строки в число

Ошибка с преобразованием строки в число

Выводит ошибку NumberFormatException:

348