Я понимаю, как передать значение между двумя формами ala https://www.youtube.com/watch?v=HFAsMWkiLvgПередайте значение между двумя окнами JavaFX, которые настраиваются через fxml?
Проблема в том, как это делается в видео. (Быть статическим, что есть). Мне не удалось заставить FXMLLoaders работать, когда внутри статического метода используется метод getClass(). Он нестатический. getClass().getResource("myFile.fxml")
Вот как я загружаю свою вторую форму.
try {
FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("LoginForm.fxml"));
Parent root1 = (Parent) fxmlLoader.load();
Stage stage = new Stage();
stage.initModality(Modality.APPLICATION_MODAL);
stage.setTitle("HWI - Login");
stage.setResizable(false);
stage.setScene(new Scene(root1));
stage.showAndWait();
} catch (Exception e) {
e.printStackTrace();
}
Внутри scenebuilder я устанавливаю метод, который будет работать там, где это по существу проверки против БД для имени пользователя/пароля. Все это делается в моем классе loginController. Успешно это делает. (Выше я есть мой @FXML крюк объявлен для loginButton)
Stage stage = (Stage) loginButton.getScene().getWindow();
stage.close();
Текущий путь у меня есть программа установки является то, что все меню устанавливаются отключены, прежде чем пользователь будет подписан. У меня есть нестатический метод уже настроен для повторного включения всех, но я не могу назвать это, потому что я не могу преодолеть разрыв между статическими/нестатическими до закрытия второго окна.
Благодаря,
Метод getResource может использоваться статическим образом: 'ExampleClass.class.getResource', но есть более эффективные подходы, чем классы статического контроллера. См. Http://stackoverflow.com/questions/14187963/passing-parameters-javafx-fxml и http://stackoverflow.com/questions/40117925/javafx-many-static-fxml-controllers – Omid
Как правило, это очень плохая идея для сделать что-либо (кроме констант) статичным в контроллерах. Мне не совсем понятно, что вы хотите сделать: хотите ли вы связаться с контроллером входа в главный контроллер или наоборот? (Второй простой, первый немного сложнее, поэтому, если это первый, будьте точны относительно *, о чем вы хотите общаться.) –