我正在努力解决javafx +焊接问题。
我正在构建应该切换场景/视图的应用程序。应用程序使用焊接CDI。
我正在尝试几种方法,但没有一种方法可行。目前,我的应用程序基于此链接https://dzone.com/articles/fxml-javafx-powered-cdi-jboss的解决方案。
这种方法(从上述解决方案中复制)效果很好。
public void launchJavaFXApplication(@Observes @StartupScene Stage s) {
mainStage = s;
InputStream is = null;
try {
is = getClass().getResourceAsStream("Views/LoginView.fxml");
Parent root = (Parent) fxmlLoader.load(is);
s.setTitle("Login");
s.setScene(new Scene(root, 900, 600));
s.show();
} catch (IOException e) {
throw new IllegalStateException("cannot load FXML login screen", e);
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
}
}
}
}
它加载第一个屏幕,但后来我尝试将视图切换到另一个与提到的LoginView并排放置的fxml文件,getClass()。getResourceAsStream(" Views / LoginView.fxml&# 34;)返回null。 使用登录视图上的按钮触发第二个视图(MainView)。 我试图在launchJavaFXApplication方法中加载MainView而不是LoginView,它运行正常。
第二个问题:当尝试在使用launchJavaFXApplication方法加载的fxml文件中放置fxml控件(即使是一个非常简单的控件)时,InputStream也为null。
如果缺少某些内容,请询问,如果可以澄清情况,我可以提供更多代码示例。
问候,Bartek