JavaFX .fxml laden klappt nicht

LouCyphre

Bekanntes Mitglied
Hallo,

ich hab mit SceneBuilder was gebaut und wollte jetzt mal zu Testzwecken die GUI starten.

Java:
package quiz;

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

import java.net.MalformedURLException;
import java.net.URL;

public class QuizApp extends Application {
    public static void main(String[] args) {
        launch(args);
    }

    @Override
    public void start(Stage primaryStage) throws MalformedURLException {
        primaryStage.setTitle("Quiz");
        FXMLLoader loader = new FXMLLoader();
        loader.setLocation(new URL("file:///src/main/resources/test.fxml"));
        StackPane root = new StackPane();
        primaryStage.setScene(new Scene(root, 300, 250));
        primaryStage.show();
    }
}

die test.fxml liegt wie im Pfad im Resources .
Ich glaube hier ist irgenwas verdreht, weil es zeigt mit eine GUI, aber nur mit dem Titel und der Scene die bei primaryStage gesetzt wird.

Sieht wer den Fehler?
 
K

kneitzel

Gast
Du musst die Ressource auch als Ressource laden. Das wäre bei Dir vermutlich ein
loader.setLocation(QuizApp.class.getResource("/test.fxml"));
 

LouCyphre

Bekanntes Mitglied
Ich hatte es mit dem tutorial versucht:


loader.setLocation(QuizApp.class.getResource("/test.fxml"));
hatte ich tatsächlich auch schonmal, so ähnlich versucht, klappt aber leider auch nicht.

Also es kompiliert ohne jegliches meckern, aber zeigt mir dennoch nur das alte Fenster. Siehst du vllt einen Fehler mit der Scene/stage oder so?
Ich vermute, dass es irgendwie micht angezeit wird, weil die .setscene() hat ja nur das root und die Größe bekommen oder? Aber wie muss es da rein?
Soll ich den loader mit übergeben?
 
Zuletzt bearbeitet:
K

kneitzel

Gast
Ja, du lädst das fxml in keiner Weise. :)

So ein typisches Start sieht so aus:

Java:
@Override
    public void start(final Stage primaryStage) throws IOException {
        Parent root = FXMLLoader.load(getClass().getResource("HelloWorld.fxml"));
        Scene scene = new Scene(root);
        primaryStage.setScene(scene);
        primaryStage.show();
    }

Es muss also ein load aufgerufen werden um dann das Ergebnis in der Stage zu verwenden.
 

LouCyphre

Bekanntes Mitglied
Das sieht auch viel logischer aus :)

Allerdings bekomme ich jetzt diverse Exceptions um die Ohren geworfen.

Java:
Exception in Application start method
java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:567)
    at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1071)
Caused by: java.lang.RuntimeException: Exception in Application start method
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:900)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
    at java.base/java.lang.Thread.run(Thread.java:831)
Caused by: java.lang.NullPointerException: Location is required.
    at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3230)
    at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3194)
    at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3163)
    at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3136)
    at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3113)
    at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3106)
    at QuizApp.main/quiz.QuizApp.start(QuizApp.java:21)

die mich vermuten lassen (NPE) dass es das file nicht finden.

Java:
Parent root = FXMLLoader.load(getClass().getResource("resources/test.fxml"));

Wie gesagt das .fxml liegt im resources Ordner
 

Anhänge

  • struktur.png
    struktur.png
    40,9 KB · Aufrufe: 2
K

kneitzel

Gast
Das resources muss weg! Das /test.fxml war schon bewusst so angegeben.

Src/main/resources wird in den classpath kopiert und die Angabe besagt, wo es im classpath gesucht werden soll.
 

LouCyphre

Bekanntes Mitglied
Java:
Parent root = FXMLLoader.load(getClass().getResource("/test.fxml"));
Java:
Parent root = FXMLLoader.load(getClass().getResource("test.fxml"));

bekomme ich leider die gleiche Meldung. ich hab auch schon bisschen gegooglet und neben der Lösung von dir und dem oben geposteten Tutorial läauft alles grob auf gleiche raus.
 
K

kneitzel

Gast
Java:
Parent root = FXMLLoader.load(getClass().getResource("/test.fxml"));
Aber genau so sollte es funktionieren. Die Datei liegt laut Bildschirmfoto genau am richtigen Ort.

Probiere es genau so aus und stell sicher, dass du es komplett neu baust. Und wenn es nicht geht, dann mach ein clean mit Maven, zip das Projekt und stell das Zip mal bereit.
 

LouCyphre

Bekanntes Mitglied
Ich hab jetzt das clean plugin mit in die POM gehauen ( weiß nicht ob du das meintest aber über die IntelliJ Konsole hats mvn clean : clean nicht gefunden)

Der Output hat sich bisschen verändert

[CODE lang="java" highlight="46"]Exception in Application start method
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:464)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:363)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at java.base/sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:1071)
Caused by: java.lang.RuntimeException: Exception in Application start method
at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:900)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
at java.base/java.lang.Thread.run(Thread.java:831)
Caused by: javafx.fxml.LoadException:
/C:/Users/P/Desktop/blog-javafx-series/03%20helloworld%20-%20maven/target/classes/test.fxml:6

at javafx.fxml/javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2625)
at javafx.fxml/javafx.fxml.FXMLLoader.access$700(FXMLLoader.java:105)
at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:930)
at javafx.fxml/javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:980)
at javafx.fxml/javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:227)
at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:752)
at javafx.fxml/javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2722)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2552)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2466)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3237)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3194)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3163)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3136)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3113)
at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3106)
at QuizApp.main/quiz.QuizApp.start(QuizApp.java:18)
at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
... 1 more
Caused by: java.lang.ClassNotFoundException: Test
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:636)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:928)
... 22 more
Exception running application quiz.QuizApp[/CODE]
 

Anhänge

  • 03 helloworld - maven.zip
    61,2 KB · Aufrufe: 2
K

kneitzel

Gast
Dann schau Dir mal die test.fxml an, speziell Zeile 6. Vermutlich wirst Du da eine Klasse Test referenziert, die es aber nicht gibt.

Im Augenblick auf dem Handy kann ich nicht in das Projekt schauen.

Ein mvm clean sollte aber ohne weitere Plugins gehen.
 

LouCyphre

Bekanntes Mitglied
Dann schau Dir mal die test.fxml an, speziell Zeile 6. Vermutlich wirst Du da eine Klasse Test referenziert, die es aber nicht gibt.
das ist absolute richtig.

Java:
<AnchorPane prefHeight="600.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.2" xmlns:fx="http://javafx.com/fxml/1" fx:controller="Test">

Danke! Das war es. Wieso hab ich das dort eingetragen :rolleyes:. Keine Ahnung!

Danke jedenfalls für die Mühe so einen sinnlosen Fehler mit zu suchen. Sry
 

AndiE

Top Contributor
Der Ursprung funktioniert übrigens auch. Ich habe

loader.setLocation(new URL("file:////home/andie/eclipse-workspaceneu/testfxml/bin/hello-world.fxml"))

eingetragen. Es ist ein Linux-Pfad, der mit "/home/andie" beginnt. Den Ort der Datei habe ich mit dem Dateimanager kontrolliert.
 
K

kneitzel

Gast
Der Ursprung funktioniert übrigens auch. Ich habe

loader.setLocation(new URL("file:////home/andie/eclipse-workspaceneu/testfxml/bin/hello-world.fxml"))

eingetragen. Es ist ein Linux-Pfad, der mit "/home/andie" beginnt. Den Ort der Datei habe ich mit dem Dateimanager kontrolliert.
Das funktioniert dann bei Dir. Und das auch nur so lange, wie die Datei unter genau diesem Pfad liegt.

In der Regel möchte man aber:
a) Projekte unabhängig von einem spezifischen Rechner / Setup verwalten (z.B. auf einem Rechner aus der Sourceverwaltung eine Kopie an einem beliebigen Ort ablegen und direkt mit dem Projekt arbeiten können)
b) Software zur Nutzung weiter geben.

Daher einfach noch einmal ganz explizit der Ratschlag, es doch bitte von Anfang an richtig zu machen.
 

JAnruVA

Mitglied
Das funktioniert dann bei Dir. Und das auch nur so lange, wie die Datei unter genau diesem Pfad liegt.

In der Regel möchte man aber:
a) Projekte unabhängig von einem spezifischen Rechner / Setup verwalten (z.B. auf einem Rechner aus der Sourceverwaltung eine Kopie an einem beliebigen Ort ablegen und direkt mit dem Projekt arbeiten können)
b) Software zur Nutzung weiter geben.

Daher einfach noch einmal ganz explizit der Ratschlag, es doch bitte von Anfang an richtig zu machen.
Hallo Zusammen,

ich habe genau so ein ähnliches Problem wie LouCyphre oben. Habe mir auch die ganzen Ratschläge und Informationen angeschaut, jedoch das Problem immer noch nicht gelöst.

Meine fxml-Dateien liegen alle im "resource" Ordnern wie auch von kneitzel beschrieben.


1701375391557.png

die login.fxml wird gefunden und startet auch ganz normal. Probleme habe ich dann bei der kontakt.fxml. Hier erhalte ich immer diese Fehlermeldung:



Einloggen erfolgreich
javafx.fxml.LoadException:
/D:/PRG/XXX/JavaFX/Datenbank_Programm_mit_SQLite/target/classes/kontakt/kontakt.fxml:16

at javafx.fxml/javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2625)
at javafx.fxml/javafx.fxml.FXMLLoader.access$700(FXMLLoader.java:105)
at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:943)
at javafx.fxml/javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:980)
at javafx.fxml/javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:227)
at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:752)
at javafx.fxml/javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2722)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2552)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2466)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3237)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3194)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3163)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3136)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3113)
at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3106)
at andrej.login/andrej.login.LoginController.succsessLogin(LoginController.java:127)
at andrej.login/andrej.login.LoginController.loginButtonAction(LoginController.java:77)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:578)
at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:77)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:578)
at javafx.base@19.0.2/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:275)
at javafx.fxml/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:83)
at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1782)
at javafx.fxml/javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1670)
at javafx.base@19.0.2/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at javafx.base@19.0.2/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
at javafx.base@19.0.2/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base@19.0.2/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at javafx.base@19.0.2/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base@19.0.2/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base@19.0.2/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base@19.0.2/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base@19.0.2/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base@19.0.2/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base@19.0.2/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base@19.0.2/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.base@19.0.2/javafx.event.Event.fireEvent(Event.java:198)
at javafx.graphics@19.0.2/javafx.scene.Node.fireEvent(Node.java:8923)
at javafx.controls@19.0.2/javafx.scene.control.Button.fire(Button.java:203)
at javafx.controls@19.0.2/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:207)
at javafx.controls@19.0.2/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
at javafx.base@19.0.2/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)
at javafx.base@19.0.2/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at javafx.base@19.0.2/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
at javafx.base@19.0.2/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base@19.0.2/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at javafx.base@19.0.2/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base@19.0.2/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base@19.0.2/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base@19.0.2/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base@19.0.2/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base@19.0.2/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base@19.0.2/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base@19.0.2/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.base@19.0.2/javafx.event.Event.fireEvent(Event.java:198)
at javafx.graphics@19.0.2/javafx.scene.Scene$MouseHandler.process(Scene.java:3894)
at javafx.graphics@19.0.2/javafx.scene.Scene.processMouseEvent(Scene.java:1887)
at javafx.graphics@19.0.2/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2620)
at javafx.graphics@19.0.2/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:411)
at javafx.graphics@19.0.2/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:301)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at javafx.graphics@19.0.2/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:450)
at javafx.graphics@19.0.2/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)
at javafx.graphics@19.0.2/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:449)
at javafx.graphics@19.0.2/com.sun.glass.ui.View.handleMouseEvent(View.java:551)
at javafx.graphics@19.0.2/com.sun.glass.ui.View.notifyMouse(View.java:937)
at javafx.graphics@19.0.2/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at javafx.graphics@19.0.2/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:184)
at java.base/java.lang.Thread.run(Thread.java:1589)
Caused by: java.lang.IllegalAccessException: class javafx.fxml.FXMLLoader$ValueElement (in module javafx.fxml) cannot access class andrej.login.kontakt.KontaktController (in module andrej.login) because module andrej.login does not export andrej.login.kontakt to module javafx.fxml
at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:420)
at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:709)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:493)
at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:306)
at java.base/java.lang.Class.newInstance(Class.java:684)
at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:936)
... 68 more

Process finished with exit code 0



Mit diesem Code soll die kontakt.fxml aufgerufen werden, nur leider klappt das nicht.

1701375680411.png

Kann mir hier jemand weiterhelfen? Vielen Dank schon mal im voraus
 

KonradN

Super-Moderator
Mitarbeiter
Also das Laden der Datei ist soweit korrekt. Du hast ein anderes Problem. Mit Java 9 wurden Module eingeführt und man muss setzen, was für Rechte man welchem Modul gibt.

Das Problem ist bei einem Stacktrace immer unten zu finden. Das Problem ist bei Dir also:
Java:
Caused by: java.lang.IllegalAccessException: class javafx.fxml.FXMLLoader$ValueElement (in module javafx.fxml) cannot access class andrej.login.kontakt.KontaktController (in module andrej.login) because module andrej.login does not export andrej.login.kontakt to module javafx.fxml

Das Problem in anderen Worten: Dein Modul (andrej.login) verhindert, dass das Modul javafx.fxml die Klasse KontaktController per "deep reflection" liest.

Du hast eine module-info.java Datei - in der Du Deinem Modul den Namen andrej.login gibst. Du kannst dein Modul nun öffnen, in dem Du entweder
opens andrej.login;
in der module-info.java hinzufügst. Damit öffnest Du dieses Package.
Die Alternative wäre direkt am Anfang vor den module noch ein open zu schreiben: "open module andrej.login"
Damit werden alle packages auch direkt geöffnet.

Zur Erläuterung: Der FXMLLoader muss die Klasse ja im Detail auswerten um da dann Felder und so zu initialisieren. Das geht nur mit den entsprechenden Rechten.
 

JAnruVA

Mitglied
Also das Laden der Datei ist soweit korrekt. Du hast ein anderes Problem. Mit Java 9 wurden Module eingeführt und man muss setzen, was für Rechte man welchem Modul gibt.

Das Problem ist bei einem Stacktrace immer unten zu finden. Das Problem ist bei Dir also:
Java:
Caused by: java.lang.IllegalAccessException: class javafx.fxml.FXMLLoader$ValueElement (in module javafx.fxml) cannot access class andrej.login.kontakt.KontaktController (in module andrej.login) because module andrej.login does not export andrej.login.kontakt to module javafx.fxml

Das Problem in anderen Worten: Dein Modul (andrej.login) verhindert, dass das Modul javafx.fxml die Klasse KontaktController per "deep reflection" liest.

Du hast eine module-info.java Datei - in der Du Deinem Modul den Namen andrej.login gibst. Du kannst dein Modul nun öffnen, in dem Du entweder
opens andrej.login;
in der module-info.java hinzufügst. Damit öffnest Du dieses Package.
Die Alternative wäre direkt am Anfang vor den module noch ein open zu schreiben: "open module andrej.login"
Damit werden alle packages auch direkt geöffnet.

Zur Erläuterung: Der FXMLLoader muss die Klasse ja im Detail auswerten um da dann Felder und so zu initialisieren. Das geht nur mit den entsprechenden Rechten.
Konrad du bist einfach der beste. Genau das war das Problem. Gerade ausprobiert und direkt geklappt.👍
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
G JavaFX Wert aus DB lesen, wenn erfolgreich automatisch eine fxml laden, möglich? AWT, Swing, JavaFX & SWT 2
I Scene Builder kann .fxml nicht mehr laden AWT, Swing, JavaFX & SWT 3
X Java Fxml laden AWT, Swing, JavaFX & SWT 4
N FXML Dokument laden AWT, Swing, JavaFX & SWT 1
V JavaFX - fxml-Datei laden (neben CSS) AWT, Swing, JavaFX & SWT 2
MiMa Darstellung von FXML ateien nicht korrekt (SceneBuilder) AWT, Swing, JavaFX & SWT 2
Georges456 NetBeans am Mac leider ohne FXML AWT, Swing, JavaFX & SWT 17
R Fxml findet controller nicht AWT, Swing, JavaFX & SWT 2
thor_norsk JavaFX, FXML und SceneBuilder AWT, Swing, JavaFX & SWT 6
Jose05 JavaFx Fxml: GUI aus einer anderen Klasse starten AWT, Swing, JavaFX & SWT 1
K Bekomme (u.a) javafx.fxml.LoadException trotz "korrektem" Code AWT, Swing, JavaFX & SWT 8
N Braucht man fxml AWT, Swing, JavaFX & SWT 3
S Fehler beim Öffnen weiterer FXML AWT, Swing, JavaFX & SWT 11
Jose05 JavaFX: eigene FXML-Datei für einen Button AWT, Swing, JavaFX & SWT 3
M mvvm umsetzen ohne fxml AWT, Swing, JavaFX & SWT 0
T FXML Datei in Java Code einbinden: javafx.fxml.LoadException AWT, Swing, JavaFX & SWT 2
J JavaFX - Included FXML - Entfernen feststellen AWT, Swing, JavaFX & SWT 2
L JavaFX javafx.fxml.LoadException bei einem Taschenrechner AWT, Swing, JavaFX & SWT 5
G JavaFX Verständnisfrage mit parametrisierten Methoden und FXML AWT, Swing, JavaFX & SWT 21
Ø Ein FXML-File mehrfach einfügen AWT, Swing, JavaFX & SWT 6
MiMa Schliessen eines FXML Fensters? AWT, Swing, JavaFX & SWT 10
OSchriever Auf Stage von FXML-Controller zugreifen AWT, Swing, JavaFX & SWT 12
L JavaFX Exception nach includieren einer fxml // nested controller AWT, Swing, JavaFX & SWT 1
R FXML File kann nicht hinzugefügt werden! AWT, Swing, JavaFX & SWT 2
J FXML - Internationalisierung - Behandung key not found AWT, Swing, JavaFX & SWT 39
J import javafx.fxml* bei JavaFX 13 geht nicht mehr AWT, Swing, JavaFX & SWT 7
S JavaFX Variablen in einem FXML File verwenden AWT, Swing, JavaFX & SWT 8
T Fxbefehle aus Main umwandeln in @FXML AWT, Swing, JavaFX & SWT 21
L JavaFX JavaFX, FXML und Guice? AWT, Swing, JavaFX & SWT 0
H 3 verschiedene Nachrichten in einer FXML View die Infos kommen aus DB AWT, Swing, JavaFX & SWT 4
H JavaFX Probleme Beim Wechseln der scene als .fxml AWT, Swing, JavaFX & SWT 7
TheWhiteShadow JavaFX Dependencies in fxml AWT, Swing, JavaFX & SWT 17
M JavaFX Altes Fenster (FXML Datei) löschen AWT, Swing, JavaFX & SWT 16
R JavaFX Java FXML Vererbung in Klassen AWT, Swing, JavaFX & SWT 9
F Java FX Von der Fxml Datei zum Objekt AWT, Swing, JavaFX & SWT 8
F FXML Datei aus dem SceneBuilder in Eclipse aufrufen AWT, Swing, JavaFX & SWT 1
I MediaPlayer (MediaView) in FXML (source) AWT, Swing, JavaFX & SWT 0
I FXML: StackPane als Root-Element AWT, Swing, JavaFX & SWT 5
I Bild über FXML (ImageView, Image) anzeigen AWT, Swing, JavaFX & SWT 1
MiMa Übergeben von Paramter bei FXML Aufruf? AWT, Swing, JavaFX & SWT 8
MiMa Wie bettet man Programmcode in JavaFX FXML ein? AWT, Swing, JavaFX & SWT 34
H Java FX List<AlbumsBean> in FXML TableView AWT, Swing, JavaFX & SWT 37
B FXML GUI - Button ausblenden AWT, Swing, JavaFX & SWT 1
D JavaFX Einbinden einer .fxml AWT, Swing, JavaFX & SWT 1
S java.fxml.load.exception und keine automatische Aktualliseriung der Mainausgabe AWT, Swing, JavaFX & SWT 5
L JavaFX Zugriff auf HostServices im FXML Controller AWT, Swing, JavaFX & SWT 1
T Pfad zur *.fxml AWT, Swing, JavaFX & SWT 8
D Java FXML mehrere Fenster AWT, Swing, JavaFX & SWT 4
Ernesto95 JavaFX FXML vs. Java Code AWT, Swing, JavaFX & SWT 3
L Liniendiagramme mit FXML: Quellen mit konkreten Beispielen AWT, Swing, JavaFX & SWT 0
S JavaFX fxml datein mit menübar ändern AWT, Swing, JavaFX & SWT 20
K JavaFX JavaFX und FXML AWT, Swing, JavaFX & SWT 6
F Problem mit der FXML Rectangle Shape AWT, Swing, JavaFX & SWT 2
H JavaFX aus der .fxml Datei einen Konstruktor bedienen AWT, Swing, JavaFX & SWT 3
H JavaFX via .fxml einen abgeleiteten Button erstellen... AWT, Swing, JavaFX & SWT 4
E Java FX FXML Problem mit html Scriptausführung AWT, Swing, JavaFX & SWT 2
R Java FX - Fxml - relative Größenangaben für Breite und Höhe einer TextArea AWT, Swing, JavaFX & SWT 8
U JavaFX Zeichenprogramm mit JavaFX FXML AWT, Swing, JavaFX & SWT 7
B Java FX FXML Textarea SceneBuilder als XML Editor AWT, Swing, JavaFX & SWT 1
C JavaFX Tiefgestellte Zeichen in fxml AWT, Swing, JavaFX & SWT 2
M Java FX SceneBuilder 2.0, FXML, Controller AWT, Swing, JavaFX & SWT 1
B FXML-Layoutdateien schützen AWT, Swing, JavaFX & SWT 4
7 JavaFX Verwendung einer ResizableCanvas-Klasse in fxml-Datei AWT, Swing, JavaFX & SWT 3
C JavaFX Auf Nodes einer FXML-Datei in start Methode zugreifen AWT, Swing, JavaFX & SWT 5
KrokoDiehl JavaFX Gleiche Controller-Instanz für inludiertes FXML AWT, Swing, JavaFX & SWT 1
S JavaFX FXML-Editor mit Java 7? AWT, Swing, JavaFX & SWT 2
J JavaFX Zugriff auf FXML-Variablen eines anderen Controllers AWT, Swing, JavaFX & SWT 2
N JavaFX GUI Elemente einer anderen (FXML)Klasse ansprechen AWT, Swing, JavaFX & SWT 16
M JavaFX FXML Standartgröße festlegen AWT, Swing, JavaFX & SWT 5
L JavaFX Verständnisfrage zu JavaFX FXML und Controller-Klasse AWT, Swing, JavaFX & SWT 1
Z JavaFX Inhalt einer ViewTable durch Aktion einer Menubar ändern welche in einer anderen fxml ist AWT, Swing, JavaFX & SWT 4
wolfgang63 JavaFX Zugriff auf Guiobjekte die über FXML erstellt wurden AWT, Swing, JavaFX & SWT 2
D JavaFX @FXML Annotation mit Klassen und Instanzen verbinden? AWT, Swing, JavaFX & SWT 5
A Databinding in FXML-Datei AWT, Swing, JavaFX & SWT 1
K JavaFX Erzeugen dynamischer Layouts in fxml AWT, Swing, JavaFX & SWT 3
M JavaFX Stage in einer FXML-Controllerklasse ermitteln? AWT, Swing, JavaFX & SWT 5
G Swing, JavaFx - Felder aus FXML sind null AWT, Swing, JavaFX & SWT 6
M JavaFX Von FXML-Controllerdatei Daten zurückgeben AWT, Swing, JavaFX & SWT 6
M Komplexe Eingabenmasken in FXML definieren? AWT, Swing, JavaFX & SWT 17
M Java FX Innerhalb einem FXML-Dialog weiteren FXML-Dialog einblenden AWT, Swing, JavaFX & SWT 3
E JavaFX fxml files wechseln AWT, Swing, JavaFX & SWT 4
H Taschenrechnerprojekt in Javafx - Frage zu den Buttons in FXML AWT, Swing, JavaFX & SWT 1
T JavaFX FXMLController für mehrere FXML? AWT, Swing, JavaFX & SWT 7
M JavaFX Parameter für Custom Control in FXML übergeben? AWT, Swing, JavaFX & SWT 4
C JavaFX Fxml and stylecheets AWT, Swing, JavaFX & SWT 5
Tort-E JavaFX FXML Grundsatzfrage AWT, Swing, JavaFX & SWT 2
K Controls in Controls / Nested fxml AWT, Swing, JavaFX & SWT 1
D JavaFX Mysteriöser Dropshadow hinter Tablabelschrift - Schatten kann nicht entfernt werden (FXML + CSS) AWT, Swing, JavaFX & SWT 6
G JavaFX NullPointerException bei Zugriff auf FXML Element AWT, Swing, JavaFX & SWT 0
S JavaFX FXML AWT, Swing, JavaFX & SWT 3
G JavaFX Fxml AWT, Swing, JavaFX & SWT 2
K JavaFX Tableview mit fxml ohne Aktualiserung trotz Thread AWT, Swing, JavaFX & SWT 13
F JavaFX Auf FXML ImageView zugreifen AWT, Swing, JavaFX & SWT 6
S Aus XML Datei FXML generieren AWT, Swing, JavaFX & SWT 4
B JavaFX FXML - Eclipse einrichten AWT, Swing, JavaFX & SWT 2
dzim UI aus FXML und Java gemischt - NPE? AWT, Swing, JavaFX & SWT 4
V Guis erstellen mit FXML und javaFX gemischt AWT, Swing, JavaFX & SWT 5
thor_norsk Icons laden nicht in GUI AWT, Swing, JavaFX & SWT 15
K JavaFX Bildergalerie aus Image Ordner laden AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben