JavaFX JavaFX - Scene Builder - BorderPane

H

Hendrik-HP

Mitglied
Hallo Community,

ich (Anfänger) hoffe ich bin hier richtig und Ihr könnt mir helfen. Nach zwei Tagen recherchieren hab ich leider keine passende Lösung gefunden (oder ich verstehe die Erklärungen einfach nicht). Deshalb frag ich mal hier.

Folgendes Szenario:

Ich habe in meiner Main Stage ein BorderPane und im Center ein GridPane mit 4 Controls.

Nun möchte ich per Button ein anderes FXML Dokument im Center anzeigen lassen und dieses nicht in einem extra Fenster (GridPane soll dann ausgetauscht werden) während die Menüleisten bleiben sollen.

Wie kann ich das realisieren?

Muss ich das FXML Dokument als Scene erstellen und wie kann ich es dann einbinden oder kann ich das Dokument ganz normal als z.B. TabPane erstellen ohne Scene als Parent und dies dann mit setCenter einbinden?

Ich hoffe ich konnte es gut erklären.

Gruß
Hendrik
 

Anhänge

  • Bildschirmfoto 2020-10-04 um 16.38.11.png
    Bildschirmfoto 2020-10-04 um 16.38.11.png
    1,2 MB · Aufrufe: 15
  • Bildschirmfoto 2020-10-04 um 16.38.36.png
    Bildschirmfoto 2020-10-04 um 16.38.36.png
    871,7 KB · Aufrufe: 15
L

lam_tr

Top Contributor
Ist an sich umsetzbar.

Wo hängt es bei dir?

Code:
button.setOnAction(e -> borderPane.setCenter(fxmlPane)
);
 
Zuletzt bearbeitet:
H

Hendrik-HP

Mitglied
Hallo Iam_tr,

es hängt hauptsächlich bei ner IOException. Hab deinen Tipp mal übernommen. Hoffentlich richtig auch wenn nicht mit nem Lambda Ausdruck:

Java:
//Implementierung BorderPane (Scene Builder)
@FXML
private BorderPane borderPane;

//Button Action
@FXML
void btnBookingsAction(ActionEvent event) throws IOException{
    borderPane.setCenter(FXMLLoader.load(getClass().getResource("statisticsScene.fxml")));
}

Bei der Ausführung bekomme ich dann folgende Exceptions:
- Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
- at program.fxmlScenes.MainSceneController.btnBookingsAction(MainSceneController.java:84)

(Das sind mal nur 2 der vielen Zeilen. Zeile 84 in der Exception ist der setCenter Befehl im Button)
Bis jetzt hab ich im Netz nur den Fehler im Bezug mit Websites gefunden.
Hab ich da noch was vergessen zu schreiben oder hab ich was übersehen?
Hat es was damit zu tun, das der setCenter Befehl ein Node haben will und das FXML Dokument meines anfänglichen Wissens nach eine Scene ist?

Gruß
Hendrik
 
sascha-sphw

sascha-sphw

Bekanntes Mitglied
Wie sieht denn die fxml Datei aus? So wie es im SceneBuilder aussieht hast Du da eine Scene als root node, stimmt das?

Falls ja, lösche die Scene und nimm als root node nur TabPane, dann sollte es klappen.
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Bei der Ausführung bekomme ich dann folgende Exceptions:
- Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
- at program.fxmlScenes.MainSceneController.btnBookingsAction(MainSceneController.java:84)

(Das sind mal nur 2 der vielen Zeilen. Zeile 84 in der Exception ist der setCenter Befehl im Button)
Zeig mal den Rest der Fehlermeldung, der interessante Teil (der Grund der InvocationTargetException) kommt erst später :)
 
L

lam_tr

Top Contributor
Hallo Iam_tr,

es hängt hauptsächlich bei ner IOException. Hab deinen Tipp mal übernommen. Hoffentlich richtig auch wenn nicht mit nem Lambda Ausdruck:

Java:
//Implementierung BorderPane (Scene Builder)
@FXML
private BorderPane borderPane;

//Button Action
@FXML
void btnBookingsAction(ActionEvent event) throws IOException{
    borderPane.setCenter(FXMLLoader.load(getClass().getResource("statisticsScene.fxml")));
}

Bei der Ausführung bekomme ich dann folgende Exceptions:
- Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
- at program.fxmlScenes.MainSceneController.btnBookingsAction(MainSceneController.java:84)

(Das sind mal nur 2 der vielen Zeilen. Zeile 84 in der Exception ist der setCenter Befehl im Button)
Bis jetzt hab ich im Netz nur den Fehler im Bezug mit Websites gefunden.
Hab ich da noch was vergessen zu schreiben oder hab ich was übersehen?
Hat es was damit zu tun, das der setCenter Befehl ein Node haben will und das FXML Dokument meines anfänglichen Wissens nach eine Scene ist?

Gruß
Hendrik
Kann es vielleicht sein dass deine staticsScene.fxml nicht gefunden werden kann? Liegt die im Root Verzeichnis deines Classpaths?
 
H

Hendrik-HP

Mitglied
@sascha-sphw:
ich hatte es auch schonmal testweise mit einer Scene als Grundelement probiert hat aber auch nicht geklappt. Nun nutze ich eigentlich nur Panes (Grid/Border etc) als root Element

@mrBrown:
Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1862)
at javafx.fxml/javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1729)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at javafx.graphics/javafx.scene.Node.fireEvent(Node.java:8886)
at javafx.controls/javafx.scene.control.Button.fire(Button.java:203)
at javafx.controls/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:208)
at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3856)
at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1851)
at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2584)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:409)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:299)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:447)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:412)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:446)
at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:556)
at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:942)
at javafx.graphics/com.sun.glass.ui.mac.MacView.notifyMouse(MacView.java:127)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:76)
at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at javafx.base/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:273)
at javafx.fxml/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:83)
at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1857)
... 40 more
Caused by: java.lang.NullPointerException: Location is required.
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3316)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3280)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3249)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3222)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3199)
at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3192)
at program.fxmlScenes.MainSceneController.btnBookingsAction(MainSceneController.java:84)
... 51 more

@lam_tr:
alle FXML Dokumente liegen in einem Package. Hänge mal ein Screenshot mir dran. Ich kann so als neues Fenster auch auf alle Dokumente zugreifen und öffnen. Nur ein FXML Dokument im BorderPane anzeigen lassen kriege ich noch nicht hin...
 

Anhänge

  • Bildschirmfoto 2020-10-07 um 18.49.05.png
    Bildschirmfoto 2020-10-07 um 18.49.05.png
    1,6 MB · Aufrufe: 25
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Das ist der relevante Punkt in der Exception, getResource gibt an der Stelle also null zurück:
Caused by: java.lang.NullPointerException: Location is required.

Guck noch mal ganz genau hin, wie die Datei heißt und was du zum Laden übergibst :) Im Zweifel einmal beides in einer Datei untereinander kopieren ;)
 
H

Hendrik-HP

Mitglied
soooo,
gesagt getan. Schreibfehler aus der FXMLDatei entfernt (tatsächlich ein 's' zuviel im Code), gefreut - Fehler gefunden, neu probiert, trotzdem nicht geklappt. Habe mir auch mal durch IntelliJ den Path kopiert (root Path, source Path...) also ohne Schreibfehler. Klappt aber beim besten Willen nicht.
Kann es vielleicht sein, das ich den ersten Center Content beim Laden auch als eigene FXML Datei einfügen muss unter Initialize und ihn Dann erst ersetzen kann? (also FXML durch FXML tauschen)
 
H

Hendrik-HP

Mitglied
Auch wieder dieselbe:

Caused by: java.lang.NullPointerException: Location is required.
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3316)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3280)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3249)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3222)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3199)
at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3192)
at program.fxmlScenes.MainSceneController.btnBookingsAction(MainSceneController.java:84)
... 51 more
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Dann ist irgendwas immer noch nicht ganz korrekt, was gibt System.out.println(getClass().getResource("statisticScene.fxml")) aus?
Und was gibt System.out.println(getClass()) aus?
 
H

Hendrik-HP

Mitglied
In der Main Klasse:
class program.Main --- (System.out.println(getClass()))
null --- (System.out.println(getClass().getResource("statisticScene.fxml")))

wieso zum Teufel gibt der null aus? Hat doch Werte???
Gut der Controller noch nicht aber die FXML Datei. Und importiert ist auch alles...

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

<?import javafx.scene.control.Label?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.RowConstraints?>

<GridPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/11.0.1" fx:controller="program.fxmlScenes.StatisticSceneController">
  <columnConstraints>
    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
    <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
  </columnConstraints>
  <rowConstraints>
    <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
    <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
    <RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
  </rowConstraints>
   <children>
      <Label text="setCenter Test erfolgreich :)" />
   </children>
</GridPane>

Java:
package program.fxmlScenes;

public class StatisticSceneController {
}
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Nicht in der Main, sondern in der Methode die durch den Button ausgelöst wird :)
 
H

Hendrik-HP

Mitglied
System.out.println(getClass()); :
class program.fxmlScenes.MainSceneController

System.out.println(getClass().getResource("statisticScene.fxml")); :
file:/Users/Hendrik/Library/Mobile%20Documents/com~apple~CloudDocs/Programmieren/Java/IntelliJ%20IDEA%20-%20Projekte/MoneyManager/out/production/MoneyManager/program/fxmlScenes/statisticScene.fxml
 
H

Hendrik-HP

Mitglied
Ja. 1x im "out" Ordner und dann nochmal im "src" Ordner. Jeweils die FXML Datei und die Controller Datei.
 
L

lam_tr

Top Contributor
@sascha-sphw:
ich hatte es auch schonmal testweise mit einer Scene als Grundelement probiert hat aber auch nicht geklappt. Nun nutze ich eigentlich nur Panes (Grid/Border etc) als root Element

@mrBrown:
Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1862)
at javafx.fxml/javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1729)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at javafx.graphics/javafx.scene.Node.fireEvent(Node.java:8886)
at javafx.controls/javafx.scene.control.Button.fire(Button.java:203)
at javafx.controls/com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:208)
at javafx.controls/com.sun.javafx.scene.control.inputmap.InputMap.handle(InputMap.java:274)
at javafx.base/com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)
at javafx.base/com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:234)
at javafx.base/com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at javafx.base/com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at javafx.base/com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at javafx.base/com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at javafx.base/com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.base/javafx.event.Event.fireEvent(Event.java:198)
at javafx.graphics/javafx.scene.Scene$MouseHandler.process(Scene.java:3856)
at javafx.graphics/javafx.scene.Scene.processMouseEvent(Scene.java:1851)
at javafx.graphics/javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2584)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:409)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:299)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$2(GlassViewEventHandler.java:447)
at javafx.graphics/com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:412)
at javafx.graphics/com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:446)
at javafx.graphics/com.sun.glass.ui.View.handleMouseEvent(View.java:556)
at javafx.graphics/com.sun.glass.ui.View.notifyMouse(View.java:942)
at javafx.graphics/com.sun.glass.ui.mac.MacView.notifyMouse(MacView.java:127)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:76)
at jdk.internal.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at javafx.base/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:273)
at javafx.fxml/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:83)
at javafx.fxml/javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1857)
... 40 more
Caused by: java.lang.NullPointerException: Location is required.
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3316)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3280)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3249)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3222)
at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3199)
at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3192)
at program.fxmlScenes.MainSceneController.btnBookingsAction(MainSceneController.java:84)
... 51 more

@lam_tr:
alle FXML Dokumente liegen in einem Package. Hänge mal ein Screenshot mir dran. Ich kann so als neues Fenster auch auf alle Dokumente zugreifen und öffnen.

Caused by: java.lang.NullPointerException: Location is required.

Das ist eben das was ich vermutet habe. Die FXML kann nicht gefunden werden. Ich habe es mir so angewohnt, auch wenn der Controller relativ zur FXML liegt den kompletten Package Pfad mit anzugeben


Hier wäre es dann
Code:
@FXML
void btnBookingsAction(ActionEvent event) throws IOException{
    borderPane.setCenter(FXMLLoader.load(getClass().getResource("/program/fxmlScenes/statisticsScene.fxml")));
}

Übrigens so wie ich es kenne schreibt man package namen komplett klein.

Grüße
lam
 
H

Hendrik-HP

Mitglied
Es klappt! Tatsächlich es klappt. 1000 Dank! :D

Hier mein funktionierender Code von lam_tr:
Java:
@FXML
void btnBookingsAction(ActionEvent event) throws IOException{
    borderPane.setCenter(FXMLLoader.load(getClass().getResource("/program/fxmlScenes/statisticScene.fxml")));
}

Tatsächlich musste ich den Path ab meinem program Ordner angeben (kleines Wort, große Wirkung). Nun tauscht er den Center Part der BorderPane aus. Allerdings ist mir aufgefallen, das ich die "Startseite" neu designen muss. Ich habe im Moment die Buttonleisten (BorderPane left und top) INKL dem Grid im Center in einer Datei. Wie schon gedacht muss ich den anfänglichen Inhalt des Centers (GridPane mit den 4 Chart-Controls) seperat aus einer extra FXML Datei initialisieren denn beim Zurückwechseln werden mir die Buttons doppelt überlagert da sie ja mit in der FXML Datei liegen. Kein Problem, ich weiß ja jetzt wie es geht und worauf ich achten muss :cool:
Der eine Großgeschriebene Ordner ist jetzt auch klein geschrieben.

Danke an alle und eure Mühe ;)
 
L

lam_tr

Top Contributor
Es klappt! Tatsächlich es klappt. 1000 Dank! :D

Hier mein funktionierender Code von lam_tr:
Java:
@FXML
void btnBookingsAction(ActionEvent event) throws IOException{
    borderPane.setCenter(FXMLLoader.load(getClass().getResource("/program/fxmlScenes/statisticsScene.fxml")));
}

Tatsächlich musste ich den Path ab meinem program Ordner angeben (kleines Wort, große Wirkung). Nun tauscht er den Center Part der BorderPane aus. Allerdings ist mir aufgefallen, das ich die "Startseite" neu designen muss. Ich habe im Moment die Buttonleisten INKL dem Grid im Center in einer Datei. Wie schon gedacht muss ich den anfänglichen Inhalt des Centers (GridPane mit den 4 Chart-Controls) seperat initialisieren denn beim Zurückwechseln werden mir die Buttons doppelt überlagert da sie ja mit in der FXML Datei liegen.
Der eine Großgeschriebene Ordner ist jetzt auch klein geschrieben.

Danke an alle und eure Mühe ;)
An sich kannst du auch ein StackPane benutzen, der die erste und die zweite Pane enthält. Beim Button klick, soll die zweite nach vorne gebracht werden
Code:
pane2.toFront();
und wenn du die erst haben willst analog dazu
Code:
pane1.toFront();

Code:
stackpane.getChildren().add(pane1);
stackpane.getChildren().add(pane2);
borderpane.setCenter(stackpane);

anstatt immer nur das Center zu setzen.

Grüße
lam
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JavaFx Scene Builder Problem AWT, Swing, JavaFX & SWT 2
B JavaFX Grundlegende Verständnisfrage JavaFX<->Scene Builder AWT, Swing, JavaFX & SWT 12
L JavaFX GUI mit JavaFX. Scene Builder source code? AWT, Swing, JavaFX & SWT 6
F JavaFX Scene Builder AWT, Swing, JavaFX & SWT 2
F JavaFX Scene Builder AWT, Swing, JavaFX & SWT 3
N JavaFX TreeTable Scene Builder AWT, Swing, JavaFX & SWT 8
H JavaFx - Scene Builder 2.0 - Classpath AWT, Swing, JavaFX & SWT 2
S Kann javafx.scene.layout.VBoxBuilder nicht importieren AWT, Swing, JavaFX & SWT 3
M error: package javafx.scene.web is not visible import javafx.scene.web.*; AWT, Swing, JavaFX & SWT 16
FRI3ND JavaFX: Wie kann ich einer Scene Argumente übergeben? AWT, Swing, JavaFX & SWT 14
J Compiler in der JavaFX stop() Methode warten lassen bist eine Aktion in einer anderen Scene gemacht AWT, Swing, JavaFX & SWT 5
I JavaFX-Scene-Überlagerung/Wechsel mit pausieren der anderen Scene AWT, Swing, JavaFX & SWT 0
L JavaFX leeres weißes Image - javafx.scene.image.Image AWT, Swing, JavaFX & SWT 2
I JAVAFX - Übergabe der Inhalte an eine Scene - Wo ist der Vorteil gegenüber Swing? AWT, Swing, JavaFX & SWT 2
D javafx.scene.control.TreeView als dropdown Menü AWT, Swing, JavaFX & SWT 6
W JavaFX JavaFX - TreeView will nicht AWT, Swing, JavaFX & SWT 3
D Columns unabhängig voneinander mit Daten füllen JavaFx AWT, Swing, JavaFX & SWT 1
C JavaFX Installation unter IntelliJ IDEA AWT, Swing, JavaFX & SWT 5
J JavaFX Label aktualisieren AWT, Swing, JavaFX & SWT 18
H JavaFX JavaFX Import Fehler AWT, Swing, JavaFX & SWT 4
M JavaFX javaFX Label-Text wird nicht gesetzt AWT, Swing, JavaFX & SWT 3
T Szene wechselen JavaFX mit If in Main Class AWT, Swing, JavaFX & SWT 2
S JavaFx Zufallsfarbe beim Button-Klick AWT, Swing, JavaFX & SWT 22
M JavaFX JavaFX in mehrere Controller AWT, Swing, JavaFX & SWT 21
R javafx erste application AWT, Swing, JavaFX & SWT 12
J JavaFX - Binding & Co AWT, Swing, JavaFX & SWT 32
S Alternative JavaFX TableView AWT, Swing, JavaFX & SWT 1
B Game of Life in JavaFX AWT, Swing, JavaFX & SWT 5
B eclipse für JavaFx setuppen AWT, Swing, JavaFX & SWT 4
N JavaFX Chioceboxen verküpfen AWT, Swing, JavaFX & SWT 0
J JavaFX Controls AWT, Swing, JavaFX & SWT 4
S JavaFx AWT, Swing, JavaFX & SWT 2
Tashtego JavaFX + Mobile AWT, Swing, JavaFX & SWT 9
JavaTalksToMe JavaFx ExekutorService Problem AWT, Swing, JavaFX & SWT 2
L JavaFX Javafx Dependency-Inversion AWT, Swing, JavaFX & SWT 19
OSchriever JavaFX auf Raspberry Pi 4 AWT, Swing, JavaFX & SWT 3
M JavaFX Tab auswählen mit JavaFX AWT, Swing, JavaFX & SWT 9
J JavaFX JavaFX Splitpane - Zugriff auf die Controller der Elemente AWT, Swing, JavaFX & SWT 8
M Java und JavaFX 13 läuft endlich AWT, Swing, JavaFX & SWT 4
N JavaFX Logging des JavaFX Application Threads mit Log4J AWT, Swing, JavaFX & SWT 3
L Java FX JavaFX Effect Attribute ausdrucken AWT, Swing, JavaFX & SWT 1
Hatsi09 JavaFx Mediaplayer seltsames Verhalten AWT, Swing, JavaFX & SWT 0
Tashtego JavaFX - Datenübergabe zwischen Scenes AWT, Swing, JavaFX & SWT 8
Zrebna JavaFX-Projekt mit Bildern funktioniert nicht - um Hilfe wird gebeten AWT, Swing, JavaFX & SWT 14
Bluedaishi JavaFX Programm start mit zwei scenen bzw Fenster AWT, Swing, JavaFX & SWT 1
S Jogl und JavaFX AWT, Swing, JavaFX & SWT 6
Bluedaishi JavaFX ProgressBar AWT, Swing, JavaFX & SWT 10
S JavaFX JavaFX TableView scrollen färbt falsche Zeilen AWT, Swing, JavaFX & SWT 1
F JavaFX JavaFX Builden: JavaFX Runtime components are missing AWT, Swing, JavaFX & SWT 0
F JavaFX wirft zufällig Exceptions AWT, Swing, JavaFX & SWT 5
M JavaFX JAVAFX TreeItem mit Tooltip versehen AWT, Swing, JavaFX & SWT 4
techM JavaFX -> CSS AWT, Swing, JavaFX & SWT 5
J JavaFx TableView mit CheckBox AWT, Swing, JavaFX & SWT 4
J JavaFX Stoppuhr mit javafx.timeline AWT, Swing, JavaFX & SWT 2
B Problem mit JavaFX AWT, Swing, JavaFX & SWT 5
O Zukunft von Swing und JavaFX ? AWT, Swing, JavaFX & SWT 3
L JavaFX auf dem PI 4 installieren AWT, Swing, JavaFX & SWT 2
L JavaFX JavaFX Forms mit Groovy starten AWT, Swing, JavaFX & SWT 1
K JavaFX CSS Border (Verschiebung verhindern) AWT, Swing, JavaFX & SWT 4
K JavaFX Element in HBOX nach rechts verschieben AWT, Swing, JavaFX & SWT 2
J import javafx.fxml* bei JavaFX 13 geht nicht mehr AWT, Swing, JavaFX & SWT 7
F Kein JavaFX mehr im Eclipse Wizard AWT, Swing, JavaFX & SWT 1
N Ausführbare Datei aus JavaFX Projekt erstellen AWT, Swing, JavaFX & SWT 22
N Array mit JavaFX Elementen AWT, Swing, JavaFX & SWT 9
S JavaFX Exception in thread "JavaFX Application Thread" AWT, Swing, JavaFX & SWT 3
W JavaFX JavaFX - Spalten auf ganze SpreadsheetView verteilen AWT, Swing, JavaFX & SWT 16
L Label im JavaFX Thread Updaten AWT, Swing, JavaFX & SWT 3
S Erwaege JavaFX Einstieg AWT, Swing, JavaFX & SWT 27
O JavaFX mini Taschenrechner! AWT, Swing, JavaFX & SWT 35
L JavaFX JavaFX, FXML und Guice? AWT, Swing, JavaFX & SWT 0
B JavaFX habe mein Problem fett markiert AWT, Swing, JavaFX & SWT 2
L Javafx Controller Klasse in Maven AWT, Swing, JavaFX & SWT 7
L JavaFX JavaFX stürtzt durch einen Server#connect Exception AWT, Swing, JavaFX & SWT 3
Shallty JavaFX MenuItem (Info) Icon ändern AWT, Swing, JavaFX & SWT 7
E Aktuelle Uhrzeit auf jeder Stage anzeigen lassen (JavaFX) AWT, Swing, JavaFX & SWT 2
T JavaFX Problem mit IntelliJ und JavaFx 11 unter XUbuntu AWT, Swing, JavaFX & SWT 3
L Java FX Problem mit Ubuntu 18 und JavaFx AWT, Swing, JavaFX & SWT 27
L JavaFX JavaScript im Javafx Webview AWT, Swing, JavaFX & SWT 4
pkm Ich kann JavaFX nicht installieren AWT, Swing, JavaFX & SWT 4
A JavaFX Daten in eine HTML-Table mit JS schreiben AWT, Swing, JavaFX & SWT 3
L JavaFX JavaFX Diagram Editor AWT, Swing, JavaFX & SWT 3
L JavaFX JavaFX Application mit Preloader sauber runterfahren AWT, Swing, JavaFX & SWT 10
K JavaFX funktioniert nicht AWT, Swing, JavaFX & SWT 2
G JavaFX Slider in JavaFX beide Seiten beschriften AWT, Swing, JavaFX & SWT 2
D JavaFX JavaFX Tutorial AWT, Swing, JavaFX & SWT 8
Bluedaishi JavaFX JFoenix TextField KeyEvent AWT, Swing, JavaFX & SWT 2
B JavaFx TreeView mit file system AWT, Swing, JavaFX & SWT 1
Bluedaishi JavaFX Button Image aus Datenbank AWT, Swing, JavaFX & SWT 13
H Feste Positionen und Größen in JavaFX AWT, Swing, JavaFX & SWT 1
B JavaFX JavaFX TableView PropertyValueFactory für Werte aus HashMap AWT, Swing, JavaFX & SWT 2
B JavaFX JavaFX Table gespeichertes Wert auswählen/anvisieren AWT, Swing, JavaFX & SWT 3
J Javafx mediaplayer mit sftp AWT, Swing, JavaFX & SWT 0
platofan23 JAVAFX zweites Fenster öffnen AWT, Swing, JavaFX & SWT 2
MoxxiManagarm JavaFX Auch ich versuche mit JavaFX warm zu werden AWT, Swing, JavaFX & SWT 9
G JavaFX JavaFX-Dialog aus einer Nicht-JavaFX-Anwendung heraus AWT, Swing, JavaFX & SWT 1
J JavaFX Wie verhindere ich das gleichzeitige Spielen von Dateien bei Mediaplayer JavaFX? AWT, Swing, JavaFX & SWT 3
H JavaFX - Label aktualisieren AWT, Swing, JavaFX & SWT 1
J Swing oder JavaFX AWT, Swing, JavaFX & SWT 21
olfibits Swing JavaFX-Frame in JDesktopPane darstellen? AWT, Swing, JavaFX & SWT 2
A JavaFX Anwendung in Jar Datei AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen

Anzeige

Neue Themen


Oben