迁移到JavaFX8的问题

迁移到JavaFX8的问题,java,java-8,javafx-8,fxml,Java,Java 8,Javafx 8,Fxml,我最近安装了新的Java8U5更新,因此我可以使用lambda操作和新的场景生成器,但是我立即在加载FXML文档时遇到了问题。在我使用另一个线程和平台之前。稍后运行。。。使用FXMLLoader加载。但是这不起作用,所以我将其放在JavaFX应用程序线程上,如下所示: ready.addListener((ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) -> { if (Boolean.

我最近安装了新的Java8U5更新,因此我可以使用lambda操作和新的场景生成器,但是我立即在加载FXML文档时遇到了问题。在我使用另一个线程和平台之前。稍后运行。。。使用FXMLLoader加载。但是这不起作用,所以我将其放在JavaFX应用程序线程上,如下所示:

ready.addListener((ObservableValue<? extends Boolean> ov, Boolean t, Boolean t1) -> {
        if (Boolean.TRUE.equals(t1)) {
            Platform.runLater(() -> {
                try {
                    //skipped loading the other FXML documents for this post...
                    final FXMLLoader load = new FXMLLoader(guiResource);
                    final GUIController guiController = new GUIController();
                    load.setController(guiController);
                    scene = new Scene((AnchorPane) load.load());
                    stage.setScene(scene);
                } catch (IOException ex) {
                    Util.err(ex.getLocalizedMessage());
                }
                stage.show();
            });
        }
}
这就是它所说的。还有其他人有这个问题吗?这是什么意思?为什么.jar后面有一个感叹号

我认为问题可能与控制器中的变量声明有关,因此下面是一个示例:

@FXML
Region fileImportVeil;
@FXML
ProgressIndicator fileImportProgressIndicator;
我的意思是要在所有FXML字段前放置private吗?

查看

file:/C:/Users/Blah/path/to/my/Application.jar!/resources/GUI2.fxml
您需要使用7zip、WinZip或NetBeans打开Application.jar,并检查路径

/resources/GUI2.fxml
也许应该

/GUI2.fxml

很可能目录/resources太多,源根目录是/src/main/resources等等。否则,它可能是一个区分大小写的问题。

您不需要将private放在前面。如果不使用任何包private、private或protected变量,则需要@FXML注释,对于不需要的公共变量,则需要@FXML注释。罐子!意味着资源在JAR中。你需要提供更多的数据才能提供帮助,从异常的stacktrace开始;它给我的只是文件的路径,没有stacktrace,否则我会发布它!您正在使用Util.errex.getLocalizedMessage吞下stacktrace,因此只显示错误消息。这个问题不是离题的,我找到了一个解决方案,我相信如果其他人遇到同样的问题,这个解决方案可以帮助他们。所以请取消暂停,这样我就可以回答了。
/GUI2.fxml