父级无法分配 javafx fxmlloader

Parent unable to be assigned javafx fxmlloader

我的程序应该 运行 我的 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 cannot be cast to javafx.scene.Parent

我无法理解这一点,因为它在过去的项目中对我有用。

我在控制器中将场景设置为变量class。

我检查了我的 FXML 文件,发现问题的原因是我的 fxml 文件中有一个场景和我的控制器本身动态创建的场景发生冲突。

场景不是父级的实现。 父节点是可以作为场景的根节点放置的父节点。 场景本身是on类型的。

当 *.fxml 根是 Borderpane 或 Pane 或任何其他实现 Node 和 Parent 的对象时,它将起作用。

您能否向我们展示 *.fxml 文件,也许您创建了一个场景而不是 Parent/Node?