0

私は一般的にJavaFXとFXMLを使用するのは非常に初めてで、Google検索を繰り返したり、Stack Exchangeで検索したりしても解決できない問題に遭遇しました。他の人にも同様の問題がありましたが、自分のプロジェクト内で解決策を再現できませんでした。

現在、私は主に FXML を使用して JavaFX をテストし、その感触を得ようとしていますが、FXMLLoader が次のエラーを表示しているため、ロードすることさえできません。

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

javafx.fxml.FXMLLoader.constructLoadException (不明なソース) で javafx.fxml.FXMLLoader.importClass (不明なソース) で javafx.fxml.FXMLLoader.processImport (不明なソース) で javafx.fxml.FXMLLoader.processProcessingInstruction (不明なソース) で javafx .fxml.FXMLLoader.loadImpl(不明なソース) at javafx.fxml.FXMLLoader.loadImpl(不明なソース) javafx.fxml.FXMLLoader.loadImpl(不明なソース) at javafx.fxml.FXMLLoader.loadImpl(不明なソース) javafx.fxml .FXMLLoader.loadImpl (不明なソース) で javafx.fxml.FXMLLoader.loadImpl (不明なソース) で javafx.fxml.FXMLLoader.loadImpl (不明なソース) で javafx.fxml.FXMLLoader.load(不明なソース) com.test.fxml で.Main.start(Main.java:14) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$163 (不明なソース) at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$176 (不明なソース) com.sun.javafx.application.PlatformImpl.lambda$null$174 (不明なソース) で java.security.AccessController.doPrivileged(ネイティブ メソッド) com.sun.javafx. application.PlatformImpl.lambda$runLater$175 (未知のソース) com.sun.glass.ui.InvokeLaterDispatcher$Future.run (未知のソース) com.sun.glass.ui.win.WinApplication._runLoop (ネイティブ メソッド) com .sun.glass.ui.win.WinApplication.lambda$null$149(不明なソース) で java.lang.Thread.run(不明なソース) 原因: java.lang.ClassNotFoundException で javafx.fxml.FXMLLoader.loadType(不明なソース) ) ... 21以上doPrivileged (ネイティブ メソッド) com.sun.javafx.application.PlatformImpl.lambda$runLater$175 (不明なソース) com.sun.glass.ui.InvokeLaterDispatcher$Future.run (不明なソース) com.sun.glass.ui .win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$149(Unknown Source) at java.lang.Thread.run(Unknown Source) 原因: java.lang. ClassNotFoundException at javafx.fxml.FXMLLoader.loadType(Unknown Source) ... 21 詳細doPrivileged (ネイティブ メソッド) com.sun.javafx.application.PlatformImpl.lambda$runLater$175 (不明なソース) com.sun.glass.ui.InvokeLaterDispatcher$Future.run (不明なソース) com.sun.glass.ui .win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$149(Unknown Source) at java.lang.Thread.run(Unknown Source) 原因: java.lang. ClassNotFoundException at javafx.fxml.FXMLLoader.loadType(Unknown Source) ... 21 詳細java.lang.ClassNotFoundException at javafx.fxml.FXMLLoader.loadType(Unknown Source) ... 21 詳細java.lang.ClassNotFoundException at javafx.fxml.FXMLLoader.loadType(Unknown Source) ... 21 詳細

さて、ここに私が取り組んでいるコードがあります...

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();
            }
        }

ExplorationModuleUI.fxml という名前の 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>

最後に、フォルダーに関してどのように配置するかを次に示します。

まだ画像を投稿できないので、代わりにリンクを貼っておきます

どんな助けでも大歓迎です。正直なところ、今夜数時間掘り下げた後でも、なぜ機能しないのか理解できませんでした. こことGoogle検索で見つけた他の解決策を試しましたが、まだ何も機能していません. ご不明な点がございましたら、お気軽にお問い合わせください。午前中にできるだけ早くご連絡いたします。

4

1 に答える 1