Eclipse - JavaFX FXML LoadException

Eclipse - JavaFX FXML LoadException

一般来说,我对使用 JavaFX 和 FXML 非常非常陌生,而且我 运行 遇到了一些我无法通过重复 [=29] 解决的问题=] 搜索,或在 Stack Exchange 上搜索此处。虽然其他人也有类似的问题,但我无法在自己的项目中复制他们的解决方案。

现在,我主要只是尝试使用 FXML 测试 JavaFX 并感受一下...但是我什至无法加载它,因为 FXMLLoader 给我以下错误。

javafx.fxml.LoadException: /C:/Users/Dylon/workspace/Convergence_titanExplorationModule/bin/com/test/fxml/ExplorationModuleUI.fxml

at javafx.fxml.FXMLLoader.constructLoadException(Unknown Source) at javafx.fxml.FXMLLoader.importClass(Unknown Source) at javafx.fxml.FXMLLoader.processImport(Unknown Source) at javafx.fxml.FXMLLoader.processProcessingInstruction(Unknown Source) at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) at javafx.fxml.FXMLLoader.loadImpl(Unknown Source) at javafx.fxml.FXMLLoader.load(Unknown Source) at com.test.fxml.Main.start(Main.java:14) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication13(Unknown Source) at com.sun.javafx.application.PlatformImpl.lambda$runAndWait6(Unknown Source) at com.sun.javafx.application.PlatformImpl.lambda$null4(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.application.PlatformImpl.lambda$runLater5(Unknown Source) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null9(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.ClassNotFoundException at javafx.fxml.FXMLLoader.loadType(Unknown Source) ... 21 more

现在,这是我正在使用的代码...

package com.test.fxml;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Parent;
import javafx.scene.Scene;


    public class Main extends Application {
        @Override
        public void start(Stage primaryStage) {
            try {
                Parent root = FXMLLoader.load(getClass().getResource("/com/test/fxml/ExplorationModuleUI.fxml"));
                Scene scene = new Scene(root,400,400);
                primaryStage.setScene(scene);
                primaryStage.show();
            } catch(Exception e) {
                e.printStackTrace();
            }
        }

这是我的 FXML 文件,名为 ExplorationModuleUI.fxml...

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.*?>
<?import javafx.scene.control*?>

<BorderPane xmlns:fx="http://javafx.com/fxml/1">
    <TOP>
        <HBox>
            <Button text = "test"/>
        </HBox>
    </TOP>
</BorderPane>

最后,我是这样安排文件夹的。

I can't post images yet so here's a link to one instead

非常感谢任何帮助。老实说,即使在今晚挖掘了几个小时之后,我也无法弄清楚为什么它不起作用。我尝试了在这里和 Google 搜索中找到的其他解决方案,但还没有任何效果。如果您有任何问题,请随时提出,我会在早上尽快回复您。

首先,您的第二个导入在 control 和 * 之间缺少一个点,它应该是 import javafx.scene.control.*

其次,TOP 不是 fxml 的有效元素,请改用 top(全部小写)。