javafx找到正确的路径
我得到以下结构: 我在ContentManager中设置fxml文件,如下所示:javafx找到正确的路径,java,path,javafx,Java,Path,Javafx,我得到以下结构: 我在ContentManager中设置fxml文件,如下所示: public static final String DEFAULT_SCREEN_FXML = "../fxml/Default.fxml"; 但我总是得到一个空点异常。我不想使用绝对路径。那么如何找到相对路径呢? 将fxml文件的控制器设置为: fx:id="client.stuff.controller.DefaultController" ??部署应用程序时,通常创建一个jar文件,其
public static final String
DEFAULT_SCREEN_FXML = "../fxml/Default.fxml";
但我总是得到一个空点异常。我不想使用绝对路径。那么如何找到相对路径呢?
将fxml文件的控制器设置为:
fx:id="client.stuff.controller.DefaultController"
??部署应用程序时,通常创建一个jar文件,其中包括类文件和所有资源。您需要从jar文件内部加载fxml文件,即作为资源。在此上下文中,path元素“.”实际上没有任何意义 使用 (路径是相对于类路径的) 当然,还要把它装上
FXMLLoader loader = new FXMLLoader(getClass().getResource(DEFAULT_SCREEN_FXML));
或者类似的东西。部署应用程序时,通常会创建一个jar文件,其中包括类文件和所有资源。您需要从jar文件内部加载fxml文件,即作为资源。在此上下文中,path元素“.”实际上没有任何意义 使用 (路径是相对于类路径的) 当然,还要把它装上
FXMLLoader loader = new FXMLLoader(getClass().getResource(DEFAULT_SCREEN_FXML));
或者类似的东西
将fxml文件的控制器设置为…fx:id
..正确吗
不,这是完全错误的。您应该使用fx:controller
,而不是fx:id
设置控制器
fx:id
用于将控制器中的@FXML
元素映射到FXML文档中定义的元素,而不是映射控制器类本身
有关更多信息,请参阅文档
因此,不要使用:
fx:id="client.stuff.controller.DefaultController"
而是使用:
fx:controller="client.stuff.controller.DefaultController"
James对问题另一部分与路径解析有关的回答是正确的 将fxml文件的控制器设置为…
fx:id
..正确吗
不,这是完全错误的。您应该使用fx:controller
,而不是fx:id
设置控制器
fx:id
用于将控制器中的@FXML
元素映射到FXML文档中定义的元素,而不是映射控制器类本身
有关更多信息,请参阅文档
因此,不要使用:
fx:id="client.stuff.controller.DefaultController"
而是使用:
fx:controller="client.stuff.controller.DefaultController"
James对你问题中与路径分辨率有关的另一部分的回答是正确的。啊,对不起,你是对的。我是说fx:控制器!但是谢谢你:)啊,对不起,你说得对。我是说fx:控制器!但谢谢你:)