Javafx как правильно переключать сцены? - PullRequest
0 голосов
/ 07 марта 2019

Я искал повсюду в Интернете, но не смог найти прямого ответа на этот простой вопрос: как лучше всего переключать сцены в приложении JavaFX?У меня есть несколько файлов FXML и контроллер для каждого из них, и я хочу иметь возможность переключаться между ними как можно быстрее (размер экрана должен оставаться прежним, все в окне должно оставаться таким же, кроме содержимого).

Есть несколько способов, которые я мог бы обдумать, наиболее распространенный способ - загрузить файл FXML с помощью FXMLLoader, а затем создать новую сцену, а затем установить эту сцену как сцену и, наконец, показать сцену.Это работает, но мне это не кажется эффективным, потому что каждый раз, когда я переключаю страницы, программа должна создать новую сцену, а затем назначить ее сцене.Почему этот метод используется чаще всего?

Parent root = FXMLLoader.load(getClass().getResource("newPage.fxml"));
Stage.setScene(new Scene(root));
Stage.show();

Я нашел другой способ, который заключается в простом изменении корня текущей сцены (поэтому, в основном, замените файл сцены FXML новым),Кажется, это немного быстрее и менее затягивает, но это хороший способ сделать что-то?

Parent root = FXMLLoader.load(getClass().getResource("newPage.fxml"));
Stage.getScene().setRoot(root);
Stage.show();

Каков наилучший способ переключения между страницами (сценами)?

1 Ответ

1 голос
/ 07 марта 2019

Принимая во внимание ваши собственные требования «Размер экрана должен оставаться неизменным, все в окне должно оставаться одинаковым, за исключением содержимого», тогда второй метод кажется естественным, не так ли? Поскольку он также немного быстрее и работает в соответствии с вашими собственными выводами, я бы не стал дважды думать о выборе.

...