父级无法分配 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?
我的程序应该 运行 我的 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?