繁体   English   中英

如何使用 FXML 文件更改 JavaFX 中的场景?

[英]How change scene in JavaFX with FXML file?

我对 JavaFX 中的更改场景有一个小问题。 单击按钮后,我想隐藏第一个场景并显示下一个场景。 我的主要场景 ID 是“welcomeScene”(start.fxml),第二个场景 ID 是“aboutmeScene”(aboutme.fxml)。 fxml 文件具有相同的路径和相同的文件夹/包。

控制器类代码:

   @FXML
   private AnchorPane welcomeScene;

   @FXML
   private void aboutme(ActionEvent event) throws IOException {
     AnchorPane pane = FXMLLoader.load(getClass().getResource("aboutme.fxml"));
     welcomeScene.getChildren().setAll(pane);

   }

当我单击按钮时,控制台中出现此错误:

Caused by: java.lang.NullPointerException: Location is required.

其他事件前。 System.exit(0); 作品。 我做错了什么? 有人可以告诉我该如何解决? 谢谢。

问题已解决:我将“aboutme.fxml”移至 \bin\Controllers 就是这样。

我知道一段时间过去了,但也许这会在未来帮助某人:

如果您的 fxml 文件位于资源文件夹中的某个位置或项目中资源文件夹的子文件夹中,则必须使用以“/”字符开头的相对路径在 java 中加载它。 资源文件夹与项目的 src 文件夹位于同一文件夹中。 如果从 src 目录或其任何子目录中加载 fxml 文件夹,通常可以使用绝对路径或不带前导“/”字符的相对路径。

我不知道为什么,但这就是java希望你如何处理资源文件夹中的资源。 这不仅涉及 fxml 文件,还涉及位于 src 文件夹/资源文件夹中的所有其他文件类型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM