Родитель не может быть назначен javafx fxmlloader - PullRequest
0 голосов
/ 19 сентября 2019

Моя программа должна запускать мой SignIn.fxml при первом запуске с контроллером с именем LoginController.Однако, когда я запускаю обычный код:

public void showLoginScreen() {
    try {
      FXMLLoader loader = new FXMLLoader(
              getClass().getResource("SignIn.fxml"));
      Parent root = (Parent) loader.load(getClass().getResource("SignIn.fxml"));
       scene = new Scene(root);
      LoginController.initManager(this);
    }catch (IOException ex) {
      Logger.getLogger(LoginManager.class.getName()).log(Level.SEVERE, null, ex);
    }
  }

, я получаю исключение о том, что

javafx.scene.Scene не может быть приведен к javafx.scene.Parent

Я не могу этого понять, так как он работал для меня в предыдущих проектах.

У меня установлена ​​сцена в качестве переменной в классе контроллера.

Ответы [ 2 ]

0 голосов
/ 19 сентября 2019

Сцена не является реализацией родительского.Родитель - это РОДИТЕЛЬСКИЕ Узлы, которые могут быть местами как КОРНЕВЫЙ УЗЕЛ Сцены.Сцена сама по себе включена.

Если корнем * .fxml является Borderpane или Pane или любой другой объект, реализующий Node и Parent, он будет работать.

Можете ли вы показать нам *.fxml может быть, вы создаете сцену, а не Parent / Node?

0 голосов
/ 19 сентября 2019

Я проверил свой файл FXML и обнаружил, что причиной моей проблемы является конфликт в моем файле fxml, имеющем сцену и динамически создаваемую сцену на самом контроллере.

...