исключение не найдено, но все выглядит правильно.может кто-нибудь сказать мне, если моя функция запуска неверна? - PullRequest
0 голосов
/ 08 июня 2018

Это моя функция запуска в моем основном классе:

public void start(Stage primary) {
    stage = primary;

    FXMLLoader loader = new FXMLLoader();
    loader.setLocation(getClass().getResource("UserInterface.fxml"));
    try {
        Parent root = (Parent) loader.load();
        Scene scene = new Scene(root);
        primary.setScene(scene);
    }catch( Exception e) {
        e.printStackTrace();
    }
}

ошибка:

javafx.fxml.LoadException: 
/C:/Users/micha/eclipse-workspace/woolard2/bin/masterfile/UserInterface.fxml

at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2848)
at javafx.fxml.FXMLLoader.processImport(FXMLLoader.java:2692)
at javafx.fxml.FXMLLoader.processProcessingInstruction(FXMLLoader.java:2661)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2517)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409)
at masterfile.Main.start(Main.java:42)
at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
at java.lang.Thread.run(Thread.java:748)

Caused by: java.lang.ClassNotFoundException
at javafx.fxml.FXMLLoader.loadType(FXMLLoader.java:2899)
at javafx.fxml.FXMLLoader.importClass(FXMLLoader.java:2846)
... 15 more

Когда я закомментирую все в «попробовать», все работает и компилируется, покакогда я пытаюсь установить загрузку как root, он прерывается.

Таким образом, он успешно находит файл, но не загружается, потому что не может найти класс, но он находится в той же папке, что и класс, и все.... может кто-нибудь, пожалуйста, помогите мне

edit- UserInterface.fxml -

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

<?import javafx.scene.Scene?>

<Scene xmlns:fx="http://javafx.com/fxml/1" fx:controller="model.UserController.java">

</Scene>

1 Ответ

0 голосов
/ 08 июня 2018

В вашем FXML вы определили свойство fx:controller как model.UserController.java.Однако ваш класс не UserController.java, то есть имя исходного файла, имя класса UserController.Измените ваш FXML для использования fx:controller="model.UserController".

...