JavaFX Fehlermeldung Root hasn't been set

Hallo erstmal,
Ich hab viel mit Swing gemacht und wollte jetzt umsteigen auf JavaFX, bin also ziemlicher Anfänger.
Jedoch habe ich ein Problem beim Laden meine FXML Datei. Ich habe sämtliche Namen überprüft, daran dürfte es nicht liegen. Für den Pfad habe ich es auch mal mit einem absoluten versucht, hat auch nichts gebracht.

Mein Programm:

Parent root = FXMLLoader.load(getClass().getResource("TextInPicture.fxml"));
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.show();


Die FXML Datei:

<fx:root maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="460.0" prefWidth="600.0" type="Accordion" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainWindowController">
<panes>
<TitledPane contentDisplay="CENTER" text="Programm Infos">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<Label alignment="CENTER" layoutX="24.0" layoutY="20.0" prefHeight="50.0" prefWidth="550.0" text="Hide and unhide a secret message in a picture!" underline="true">
<font>
<Font size="25.0" />
</font>
</Label>
<Label layoutX="188.0" layoutY="60.0" text="programmed by Linus Dierheimer" />
<TextArea cacheHint="QUALITY" depthTest="DISABLE" editable="false" layoutX="91.0" layoutY="101.0" mouseTransparent="true" prefHeight="202.0" prefWidth="418.0" text="This programm is made to hide a secret message in a picture, or to unhide it. It is even abel to compare two pictures, if their sourcecode is absolutely idently to look if there is a message in one of them.&#10;For use one of this effects, just press one of the botton below!" wrapText="true">
<opaqueInsets>
<Insets />
</opaqueInsets>
<font>
<Font size="17.0" />
</font>
</TextArea>
<AmbientLight color="CHARTREUSE" layoutX="546.0" layoutY="20.0" lightOn="true" />
</children>
</AnchorPane>
</content>
</TitledPane>
<TitledPane contentDisplay="CENTER" text="Hide a message">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<Label layoutX="25.0" layoutY="35.0" text="The path of the picture, thats copy will be used for hide the message:" />
<TextField fx:id="textfelt1Hide" alignment="CENTER" layoutX="25.0" layoutY="56.0" prefHeight="31.0" prefWidth="550.0" />
<Label layoutX="25.0" layoutY="97.0" />
<Label layoutX="25.0" layoutY="97.0" text="The path of the new picture:" />
<TextField fx:id="textfeld2Hide" layoutX="25.0" layoutY="118.0" prefHeight="31.0" prefWidth="550.0" />
<Button fx:id="buttonHide" layoutX="255.0" layoutY="162.0" mnemonicParsing="false" text="OK!" textAlignment="CENTER" />
<ProgressBar fx:id="balkenHide" layoutX="25.0" layoutY="238.0" prefHeight="23.0" prefWidth="548.0" progress="0.0" />
<Label layoutX="25.0" layoutY="208.0" prefHeight="21.0" prefWidth="550.0" text="fortschritt" visible="false" />
<Label fx:id="fortschrittHide" contentDisplay="TOP" layoutX="25.0" layoutY="219.0" prefHeight="21.0" prefWidth="550.0" text="fortschritt" textAlignment="CENTER" />
<Label layoutX="277.0" layoutY="261.0" />
<AmbientLight color="CHARTREUSE" layoutX="544.0" layoutY="14.0" lightOn="true" />
</children></AnchorPane>
</content>
</TitledPane>
<TitledPane alignment="TOP_LEFT" contentDisplay="CENTER" text="read a message">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<Label layoutX="24.0" layoutY="27.0" prefHeight="21.0" prefWidth="550.0" text="The path of the picture with the message:" />
<TextField fx:id="textfeldread" layoutX="24.0" layoutY="48.0" prefHeight="31.0" prefWidth="550.0" />
<Button fx:id="buttonRead" layoutX="267.0" layoutY="96.0" mnemonicParsing="false" text="OK!" />
<Label fx:id="fortschrittRead" layoutX="24.0" layoutY="117.0" prefHeight="21.0" prefWidth="550.0" text="fortschritt" />
<ProgressBar fx:id="balkenRead" layoutX="25.0" layoutY="138.0" prefHeight="23.0" prefWidth="549.0" progress="0.0" />
<TextArea fx:id="paneRead" layoutX="25.0" layoutY="168.0" prefHeight="157.0" prefWidth="550.0" />
<AmbientLight color="CHARTREUSE" layoutX="536.0" layoutY="27.0" lightOn="true" />
</children></AnchorPane>
</content>
</TitledPane>
<TitledPane contentDisplay="CENTER" text="compare two pics">
<content>
<AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="180.0" prefWidth="200.0">
<children>
<Label layoutX="25.0" layoutY="20.0" prefHeight="21.0" prefWidth="545.0" text="The path of the first picture to be compared:" />
<TextField fx:id="textfeld1Comp" layoutX="24.0" layoutY="41.0" prefHeight="31.0" prefWidth="550.0" />
<Label layoutX="24.0" layoutY="85.0" text="The path of the second picture:" />
<TextField fx:id="textfeld2comp" layoutX="25.0" layoutY="106.0" prefHeight="31.0" prefWidth="550.0" />
<Button fx:id="buttonComp" layoutX="268.0" layoutY="146.0" mnemonicParsing="false" text="OK!" />
<Label fx:id="fortschrittComp" layoutX="25.0" layoutY="184.0" prefHeight="21.0" prefWidth="550.0" text="fortschritt" />
<ProgressBar fx:id="balkenComp" layoutX="24.0" layoutY="205.0" prefHeight="23.0" prefWidth="550.0" progress="0.0" />
<Label fx:id="ergebnisComp" alignment="CENTER" layoutX="25.0" layoutY="243.0" prefHeight="21.0" prefWidth="550.0" text="Ergebnis" textAlignment="CENTER" />
<AmbientLight color="CHARTREUSE" layoutX="542.0" layoutY="20.0" lightOn="true" />
</children></AnchorPane>
</content>
</TitledPane>
</panes>
</fx:root>


Und die Fehlermeldung:


javafx.fxml.LoadException: Root hasn't been set. Use method setRoot() before load.


/C:/Users/Linus/Documents/Programieren/Java/Programme/messageInPicture/bin/application/TextInPicture.fxml:11
at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2597)
at javafx.fxml.FXMLLoader.access$100(FXMLLoader.java:103)
at javafx.fxml.FXMLLoader$RootElement.constructValue(FXMLLoader.java:1326)
at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:746)
at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2707)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3214)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3175)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3148)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3124)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3104)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:3097)
at application.Main.start(Main.java:15)
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(Unknown Source)
 

Robat

Top Contributor
Bist du dir sicher, dass du mit dem root Tag arbeiten willst? Brauchst du das wirklich?
Wenn nicht dann ersetz das root Tag einfach durch ein ganz normales Layout.
Beispielhaft so:
Java:
<VBox xmlns="javafx.com/javafx/8"; xmlns:fx="javafx.com/fxml/1"; fx:controller="samplepackage.SampleController">
<!-- ... -->
</VBox>
 

dzim

Top Contributor
Das Problem mit root ist: Das ist eher für Custom Components gut, die auf FXML-Basis entstehen sollen:
http://docs.oracle.com/javafx/2/api/javafx/fxml/doc-files/introduction_to_fxml.html#root_elements
-> http://docs.oracle.com/javafx/2/api/javafx/fxml/doc-files/introduction_to_fxml.html#fxmlloader

In dem Fall musst du dann die entsprechende Klasse erweitern (deine dünkt mich etwas falsch: type="Accordion" -> type="javafx.scene.control.Accordion")… Schau mal die Doku oben an.

Wenn das Overkill ist (was ich vermute), dann @Robat Vorschlag folgen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Baerdoc Fehlermeldung bei Validierung mit controlsfx AWT, Swing, JavaFX & SWT 5
Juelin Fehlermeldung AWT, Swing, JavaFX & SWT 5
P Fehlermeldung: Error: Could not find or load main class set Caused by: java.lang.ClassNotFoundException: set AWT, Swing, JavaFX & SWT 5
V JavaFX Bild leer und keine Fehlermeldung AWT, Swing, JavaFX & SWT 21
L FX-Projekt: fast leere Fensterausgabe ohne Fehlermeldung AWT, Swing, JavaFX & SWT 6
P Swing Icon einfügen wirft eine Fehlermeldung AWT, Swing, JavaFX & SWT 3
S Scene Builder Fehlermeldung (Anfängerprobleme) AWT, Swing, JavaFX & SWT 0
S Scene Builder Fehlermeldung (Anfängerprobleme) AWT, Swing, JavaFX & SWT 8
Z Fehlermeldung AWT, Swing, JavaFX & SWT 3
N Verständnisproblem bei Fehlermeldung bei "showMessage" AWT, Swing, JavaFX & SWT 3
R AWT Ich verstehe die Fehlermeldung nicht. Was habe ich falsch gemacht? AWT, Swing, JavaFX & SWT 85
L java.lang.NullPointerException - Fehlermeldung AWT, Swing, JavaFX & SWT 2
J Event Handling Input auf String testen, Fehlermeldung ausgeben AWT, Swing, JavaFX & SWT 4
T Unerklärliche Fehlermeldung AWT, Swing, JavaFX & SWT 5
K Fehlermeldung mit Interface AWT, Swing, JavaFX & SWT 9
L ImageIcon auf JPanel wird nicht angezeigt(keiner Fehlermeldung) AWT, Swing, JavaFX & SWT 11
L JButton mit ImageIcon/Fehlermeldung AWT, Swing, JavaFX & SWT 1
R Swing JOptionPane Fehlermeldung- bitte um Hilfe! AWT, Swing, JavaFX & SWT 4
F Unverständliche Fehlermeldung AWT, Swing, JavaFX & SWT 5
J Fehlermeldung adding a window to a container AWT, Swing, JavaFX & SWT 9
C Swing Fehlermeldung in einem Dialog anzeigen AWT, Swing, JavaFX & SWT 2
S SWT Fehlermeldung ausgeben AWT, Swing, JavaFX & SWT 7
D SWT "Hello World" - Fehlermeldung AWT, Swing, JavaFX & SWT 8
DARK_ZERATO2 GUI Fehlermeldung mit sound AWT, Swing, JavaFX & SWT 4
ModellbahnerTT Fehlermeldung: StackOverflowError AWT, Swing, JavaFX & SWT 8
O Fehlermeldungs-Fenster je nach Fehlermeldung AWT, Swing, JavaFX & SWT 2
R Fehlermeldung: ". is not abstract" AWT, Swing, JavaFX & SWT 5
B Swing Fehlermeldung AWT, Swing, JavaFX & SWT 6
J Eigene Fehlermeldung in AWT erzeugen AWT, Swing, JavaFX & SWT 2
M JTable. Beim löschen der Zeilen Fehlermeldung AWT, Swing, JavaFX & SWT 22
D Unverständliche Fehlermeldung AWT, Swing, JavaFX & SWT 5
A Fehlermeldung wegen FocusTraversalKeys AWT, Swing, JavaFX & SWT 4
A Fehlermeldung beim Bild speichern AWT, Swing, JavaFX & SWT 4
I FXML: StackPane als Root-Element AWT, Swing, JavaFX & SWT 5
N JTree ohne root AWT, Swing, JavaFX & SWT 2
kodela FileChooser mit "absolutem" Root-Verzeichnis öffnen AWT, Swing, JavaFX & SWT 2
R JTree root Node AWT, Swing, JavaFX & SWT 2
B jtree root icon ändern AWT, Swing, JavaFX & SWT 1
G JTree ohne Root AWT, Swing, JavaFX & SWT 6
R JTree ohne visible Root aber mit Icons ? AWT, Swing, JavaFX & SWT 2
N JTree mehrere/ohne Root Element/e AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben