【发布时间】:2019-09-19 08:52:43
【问题描述】:
我的程序应该在初始运行时运行我的 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
我无法理解这一点,因为它在过去的项目中对我有用。
我将场景设置为控制器类中的变量。
【问题讨论】:
-
过去工作是什么意思? .fxml 中是否发生了任何变化?从 sn-p 中,您分享了它并不清楚您要实现的目标,但作为建议,请检查有关 fxml 加载器的oracle's link。在示例中,父级被正确转换,因为定义了 rootPane。
-
它在过去适用于不同的程序,因为我之前使用它在我的程序的其余部分运行之前构建登录屏幕。我会再去查一下oracle的网站,但是之前几次都找不到问题。
-
我找到了我的问题,别担心。你是对的,在某种程度上,我在我的 FXML 文件中动态创建了一个场景,从而产生了冲突,我解决了。
-
很酷,然后放置响应并接受它作为答案。它可能会帮助其他有同样问题的人
标签: java javafx fxml fxmlloader