скрытие и открытие окна javaFX

153
15 мая 2019, 19:10

Я реализовываю простое переключение окон, нажал Button1 (на Windows1) - открылось Windiws2, где есть Button2, нажал там уже Button2 - вернулось Windows1. Из примеров я нашел такую реализацию

registrationButton.setOnAction(event -> {
        registrationButton.getScene().getWindow().hide();
        FXMLLoader loader = new FXMLLoader();
        loader.setLocation(getClass().getResource("/fxmlFiles/registration.fxml"));
        try {
            loader.load();
        } catch (IOException e) {
            e.printStackTrace();
        }
        Parent root = loader.getRoot();
        Stage stage = new Stage();
        stage.setScene(new Scene(root));
        stage.showAndWait();
    });

В другом контроллере я делаю такой же метод, только по сути изменяю FXML файл, что по идее должно меня вернуть к изначальному окну, и как бы да, это работает, но беда с прорисовкой, она происходит только при изменении размера окна, что ни есть хорошо, я так понял это все из-за hide(); по сути он реализует setShowing(false); но я не пойму как вернуть обратно отрисовку, что бы я спокойно переключался таким образом между окнами.

И в добавок, если кто-то подскажет хороший сайт со статьями по JavaFX, или актуальную книгу, буду весьма благодарен. Знаю, данный вопрос про книги уже задавали, но времена меняются, что-то устаревает. Спасибо.

Answer 1

ЭХ, как всегда после долгого тупника это оказало проще простого - медот showAndWait();в данном случае не подходит, всего навсего его необходимо заменить на show();

READ ALSO
Класс String (valueof и проверка)

Класс String (valueof и проверка)

Правильно ли я проверил значение которое было целочисленное, а стало строковое (65)? Если у нас сравнивается 1 (строка), значение, можно ли использовать...

137
Как установить Style в коде?

Как установить Style в коде?

Я создал новый style для кнопок:

140
Как создается массив, почему через new?

Как создается массив, почему через new?

Почему при создании массива используется new, так же как при создании обьекта:

128