当前位置: 首页 > 知识库问答 >
问题:

已查找FXML/FXMLLoader错误诊断工具

庄新翰
2023-03-14

嗨,这里有一个概要用例。我有一个在JavaFX Scene Builder中开发的看似有效的FXML文件。到目前为止,它是一个非常重要的XML块,并且在FXML文件的某个地方存在运行时加载错误。场景构建器与预览选项工作良好。我有一个'simple.FXML'文件,用来验证控制器是否按照预期工作,即相同的控件和事件,但没有额外的FXML布局。我已经并且我正在执行cut-out-code And test循环来识别有问题的XML。所以我会在某个时候把这件事弄个水落石出。

目前,在Scene Builder和Netbeans FXML编辑器中都没有显示任何错误,而且我也没有在“javafx-loading FXML file error”(#1)中得到一个加载错误。我得到的只是runnable中end task的一个异常,该异常表示加载器抛出了一个异常

  • 这是一个bug吗?像加载器这样的黑盒子应该发出某种指示符,比如第246行的故障,或者“...一些指示往哪里看的东西。
  • 对于如何更快地发现/解决此类错误,您有什么诀窍、技巧或建议?
    • 是否可以使用include
    • 我看到FXML使用SAX,有没有可能包装或钩住解析器,并给FXMLLoader一个备用解析器?
    • 例如,控制器是否可以级联,这样我就可以制作一个“根控制器”,它可以捕获离起点更近的问题。
    catch( Exception ex ){
           System.out.println("Exception on FXMLLoader.load()");
           System.out.println( ex.getMessage() );   //-- Doesn't show in stack dump
    }
    

    请查看FXML资源中的键入内容。小错别字是识别和检测的魔鬼。这适用于任何未被编译器或lint检查的字符串,而不仅仅是FXML。

    // These two line are not the same:
    Parent root;
    root = FXMLLoader.load(getClass().getResource("Samplle.fxml"));
    root = FXMLLoader.load(getClass().getResource("Sample.fxml"));
    

    GetMessage()的例外情况是:“Location Required”,用于#6中的输入错误。

    记住在FXML名称空间中包含“-d”文件,例如最外面的XML元素需要的文件。

    <TreeView id="treeView" fx:id="tree" xmlns:fx="http://javafx.com/fxml" ... >
    
      null

共有1个答案

夏侯英纵
2023-03-14

我在使用SceneBuilder2.0和JavaFX2时遇到了同样的问题。问题是SceneBuilder生成JavaFX8代码。代码是有效的,但不是100%的JavaFX2兼容。也许那是你的问题。您应该会从FXMLLoader获得一个异常,错误在哪一行。

 类似资料:
  • 问题 解释器因为某个分段错误、总线错误、访问越界或其他致命错误而突然间奔溃。 你想获得Python堆栈信息,从而找出在发生错误的时候你的程序运行点。 解决方案 faulthandler 模块能被用来帮你解决这个问题。 在你的程序中引入下列代码: import faulthandler faulthandler.enable() 另外还可以像下面这样使用 -Xfaulthandler 来运行Pyth

  • 在Maven项目中运行main类时,我得到: 应用程序启动方法中的异常 据我所知,这是因为FXML文件无法加载。 这是文件系统层次结构 在Eclipse(src内部) 阅读apache的maven指南和其他statck问题,下面的代码片段似乎是创建并指向文件的正确方法。 但是这段代码将抛出前面声明的异常。 当我试图找出代码中异常

  • 介绍 ping的工作原理很简单,一台网络设备发送请求等待另一网络设备的回复,并记录下发送时间。接收到回复之后,就可以计算报文传输时间了。只要接收到回复就表示连接是正常的。耗费的时间喻示了路径长度。重复请求响应的一致性也表明了连接质量的可靠性。因此,ping回答了两个基本的问题:是否有连接?连接的质量如何?本文主要讨论这两个问题。 更多信息 正常的ping操作主要是两个特定的ICMP消息,ECHO_

  • 当我运行应用程序时,gradle无法构建 编译器消息:file:///c:/users/wellick/documents/flutter/.pub-cache/hosted/pub.dartlang.org/flutter_sticky_header-0.3.4/lib/src/widgets/sticky_header_layout_builder.dart:147:16:错误:无法将参数类型

  • multilanguageSupport.java LanguageIfxml.fxml LanguageIfXMLController.java 错误消息: .属性文件在包TextData中定义