Exception 加载fxml javafx8时出错

Exception 加载fxml javafx8时出错,exception,javafx,fxmlloader,Exception,Javafx,Fxmlloader,我正在尝试加载以下fxml文件。我只是得到一个指向第19行的异常。我可以通过“在窗口中显示预览”菜单项在scenebuilder中加载它。起初,我认为不能将矩形作为stackpane的子对象,但这正是Oracle用于javadoc和stackpane的示例。是否有已知的最佳实践来调试加载失败和fxml文件?它标记“网滤器堆栈窗格”下的第一个子项。 有问题的两个孩子是带黄色十字线的浅蓝色矩形 执行加载的代码 public VBox create() throws IOException {

我正在尝试加载以下fxml文件。我只是得到一个指向第19行的异常。我可以通过“在窗口中显示预览”菜单项在scenebuilder中加载它。起初,我认为不能将矩形作为stackpane的子对象,但这正是Oracle用于javadoc和stackpane的示例。是否有已知的最佳实践来调试加载失败和fxml文件?它标记“网滤器堆栈窗格”下的第一个子项。 有问题的两个孩子是带黄色十字线的浅蓝色矩形

执行加载的代码

public VBox create() throws IOException {
    VBox pane = null;
    try {
        pane = sliceLoader.load();
        controller = sliceLoader.getController();
        controller.setRadio(radio);
        controller.setPan(pan);
        controller = sliceLoader.getController();
        controller.setPanadapter(pan);
        controller.setParent(this);
        controller.setSlice(slice);
        wire();
        Platform.runLater(() -> {
            controller.wire();
        });
    } catch (Exception e) {
        if (log.isDebugEnabled()) {
            log.debug(e.getLocalizedMessage());
            log.debug(e.getMessage());
            log.debug(e.toString());
        }
    }

    return pane;
}

错误实际上在控制器的构造函数中。昨晚晚些时候,我试图显示十字线,当它是一个可调整大小的Canvas时,我决定将其更改为矩形,这样它只需填充()。由于这是一个可用的现有应用程序和现有控制器,我没有从SceneBuilder的视图示例控制器创建它,并且无意中没有更改控制器构造函数中的@FXML。在FXMLLoader.java中,我最终能够跟踪到它试图调用某个东西的点,即控制器。奇怪的是,它指向了错误的控制器,我在fxml中验证了它的正确性。困惑,但不是当前的困惑。要评论James,总有一个堆栈跟踪。不,很多时候没有。也许我错过了一些调试这些程序的最佳实践(JavaFX fxml加载器问题,这是我在过去几天中遇到的问题。

请发布堆栈跟踪,这是问题的一部分。没有堆栈跟踪,只是一行代码说在中的第19行有问题,它列出了fxml文件的完全限定路径名。除非明确说明,否则必须有堆栈跟踪至少发布加载fxmlJames的类的代码,我在调试器中进行了dbl检查,在catch子句中,异常中的stacktrace大小为0。但是,我同意应该始终存在一个。记录堆栈跟踪,而不仅仅是异常消息,并向我们显示输出。
11:11:24.191 [nioEventLoopGroup-2-3] DEBUG org.cornova.xpssdr.views.SliceView - javafx.fxml.LoadException: 
file:/home/walt/NetBeansProjects/XPSSDR/dist/run293699722/XPSSDR.jar!/SliceFlag.fxml:19
public VBox create() throws IOException {
    VBox pane = null;
    try {
        pane = sliceLoader.load();
        controller = sliceLoader.getController();
        controller.setRadio(radio);
        controller.setPan(pan);
        controller = sliceLoader.getController();
        controller.setPanadapter(pan);
        controller.setParent(this);
        controller.setSlice(slice);
        wire();
        Platform.runLater(() -> {
            controller.wire();
        });
    } catch (Exception e) {
        if (log.isDebugEnabled()) {
            log.debug(e.getLocalizedMessage());
            log.debug(e.getMessage());
            log.debug(e.toString());
        }
    }

    return pane;
}