JavaFX JRXML Content wechseln

mirisbowring

Bekanntes Mitglied
Abend,

ich habe eine Stage und eine Scene. Diese Scene wird mit einer FXML Datei "beschrieben".
Hierbei handelt es sich um ein BorderPane, von dem die Ränder mit Content gefüllt sind.
Im Center des BorderPanes habe ich ein StackPane angelegt, auf das der eigentliche Content soll.
Diesen Lade ich aus weiteren FXML Dateien (immer nur eine).
Über verschiedene Events, soll der Content aus dem Center durch eine andere FXML getauscht werden.
Das ist kein Problem und funktioniert bisher auch wunderbar.

Mein Problem aber ist, dass dass die "alten" FXML nicht ihren Zustand beibehalten. Also dass z.B. TextFelder wieder leer sind.

Ich möchte also ein Pane aufs andere legen, ohne dass der (vom Nutzer eingegebene) Inhalt gelöscht/überschrieben wird.

Wie lässt sich das realisieren?

Gruß
mirisbowring
 

dzim

Top Contributor
Indem du sie nicht löschst, sondern speicherst - damit sparst du eh langfristig Resourcen.
Der Aufbau ist schon super, was du jetzt machen musst, ist den Content im Zentrum am Besten #toBack und #setVisible(false) und #setManaged(false) setzen (anzuzeigenden Inhalt immer mit #toFront nach vorne holen). Wenn du etwas lädst, was schon da ist, einfach nur wieder sichtbar und "gemanaged" machen - und natürlich #toFront nicht vergessen.

Klar, was ich meine?

PS: Ich regel das immer über ein Zentrales Model, bei dem ich ein ObjectProperty eines Enums habe. Wenn ich irgendwo etwas anderes sehen möchte, dann setze ich dieses Property neu und ein Listener im Controller der Root-GUI (dort wo dein BorderPane und StackPane verortet sind) hört auf diese Änderungen und reagiert entsprechend.
 

mirisbowring

Bekanntes Mitglied
Dein Prinzip habe ich verstanden, und es funktioniert :D
Allerdings habe ich dein PS nur in Maßen nachvollziehen können...

Da ich mit ObjectPropertys bisher kaum gearbeitet habe, habe ich das jetzt anders gelöst um ebenfalls ein zentrales Modell zu haben.
Ich habe eine Controller Class gemacht, in der ich eine public class mit nem String und einer Node erstellt habe (also quasi eine STRUCT wie in C).
Beim Aufrufen der Controller Class werden per loop alle gespeicherten FXML und deren namen in eine ArrayList meines eigenen Datentyps gespeichert, dem BoderPane Center hinzugefügt und sofert "versteckt" (Wie du es beschrieben hast mit #toBack, etc.).
Wenn ich den Content dann später wechseln möchte, habe ich ne Methode, in die Ich zwei Strings gebe (Name des aktuellen Contents und Name des gewünschten Contents). Diese tauscht dann die beiden FXMLs...


Also jetzt funktioniert es auf jeden Fall^^
Ich muss jetzt nur noch schauen, wo ich da einen neuen Thread aufmachen kann, damit die restlichen Dateien im Hintergrund geladen werden können, ohne aber NullPointerException auszulösen, wenn ich auf die ArrayList zugreifen möchte.
 

dzim

Top Contributor
Mit Properties und den darauf möglichen Listenern könntest du natürlich vergleichbar einfach auch Threads für - irgendwelche - Operationen spawnen. Aber du machst das schon.
Wenn eins sicher ist: In ein paar Jahren wirst du den Code vielleicht anschauen und sagen "Ach du Schande, warum hab ich das nur so kompliziert gemacht?" - jedenfalls geht es mir recht häufig so, wenn ich mir älteren Code anschauen. :-D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Yonnig JavaFX Größe von WebView an Content anpassen AWT, Swing, JavaFX & SWT 3
W JavaFX Etwas Tabellenartiges + Cell-Content-Changed-Event (o.ä.) AWT, Swing, JavaFX & SWT 30
L JavaFX TableView kein content text ändern AWT, Swing, JavaFX & SWT 2
S JavaFX Tab-content-area Rahmen AWT, Swing, JavaFX & SWT 7
M Swing "Frame.setResizable(false);" verschiebt Content? AWT, Swing, JavaFX & SWT 9
Kenan89 Java FX ScrollPane Content mittig setzen AWT, Swing, JavaFX & SWT 5
L Swing JTextField Content-Listener AWT, Swing, JavaFX & SWT 4
L JFrame/Content Pane height Problem AWT, Swing, JavaFX & SWT 4
T ransparenter JFrame + nicht transparanter Content AWT, Swing, JavaFX & SWT 8
N Performanceprobleme mit JLabel und HTML content AWT, Swing, JavaFX & SWT 5
G inahlt von content pane austauschen AWT, Swing, JavaFX & SWT 2
G Probleme mit Content bei Null-Layout verändern AWT, Swing, JavaFX & SWT 7
T JEditorPane-content drucken AWT, Swing, JavaFX & SWT 2
T Scene wechseln über ManuItem AWT, Swing, JavaFX & SWT 7
I JavaFX - Pane wechseln über 2. Controller AWT, Swing, JavaFX & SWT 5
melaniemueller Layout wechseln über RadioButtons AWT, Swing, JavaFX & SWT 4
CptK JPanels wechseln AWT, Swing, JavaFX & SWT 2
J splitpane - Wechseln auf anderen Split erkennen AWT, Swing, JavaFX & SWT 11
L Swing Button Farbe ändern/wechseln AWT, Swing, JavaFX & SWT 2
A Inhalt wechseln bei Klick auf Label AWT, Swing, JavaFX & SWT 8
J Tableview - kann man mit Enter die Zellen wechseln AWT, Swing, JavaFX & SWT 1
H JavaFX Probleme Beim Wechseln der scene als .fxml AWT, Swing, JavaFX & SWT 7
P Zwischen verschiedenen Panels wechseln AWT, Swing, JavaFX & SWT 3
Ksanatos Swing Bild (.jpg) einlesen und per Button wechseln AWT, Swing, JavaFX & SWT 9
H JavaFX Kriege fehler beim Fenster wechseln AWT, Swing, JavaFX & SWT 7
P Swing Panels Wechseln AWT, Swing, JavaFX & SWT 9
G Menübar anklicken und Inhalt entsprechend wechseln AWT, Swing, JavaFX & SWT 4
A JButton soll durch anklicken die Farbe wechseln AWT, Swing, JavaFX & SWT 8
D Zwischen Null-Layouts wechseln AWT, Swing, JavaFX & SWT 2
Viktim Swing JTable Mit Tab druch Zeilen Wechseln AWT, Swing, JavaFX & SWT 5
B Swing WindowBuilde: Menu -> anderes Panel wechseln AWT, Swing, JavaFX & SWT 1
T Durch klicken eines Buttons Klasse wechseln AWT, Swing, JavaFX & SWT 2
J Fensterinhalt bei Klick auf Menüitem wechseln AWT, Swing, JavaFX & SWT 1
T Tab per Code wechseln? AWT, Swing, JavaFX & SWT 3
A BorderLayout "Center" Inhalt wechseln AWT, Swing, JavaFX & SWT 1
L JavaFX Scene wechseln unter FX AWT, Swing, JavaFX & SWT 5
V RadioButton aktivieren/deaktivieren; Zustand abfragen und wechseln AWT, Swing, JavaFX & SWT 2
E JavaFX fxml files wechseln AWT, Swing, JavaFX & SWT 4
S Swing, Button benutzen zum Hintergrund wechseln AWT, Swing, JavaFX & SWT 3
A combobox automatisch in ein textfeld wechseln AWT, Swing, JavaFX & SWT 3
bluerob JComponenten verschieben sich bei Fenster wechseln AWT, Swing, JavaFX & SWT 3
A KeyListener Button wechseln & Programm beenden AWT, Swing, JavaFX & SWT 4
S Swing JTabbedPane: Nur nach ButtonClick und nicht nach Click auf Tab ins nächste Tab wechseln AWT, Swing, JavaFX & SWT 2
Jagson Swing Von JDialog zu anderem JDialog wechseln AWT, Swing, JavaFX & SWT 2
M SWT Images bei Toggle Button wechseln AWT, Swing, JavaFX & SWT 3
X zwischen 2 JPanels "elegant" wechseln AWT, Swing, JavaFX & SWT 3
B Swing Locale wechseln, nachdem UIManager schon initialisiert ist AWT, Swing, JavaFX & SWT 5
B Panels wechseln auf Knopfdruck AWT, Swing, JavaFX & SWT 17
G FullScreen JFrames wechseln AWT, Swing, JavaFX & SWT 2
E tabpane wechseln mit Button AWT, Swing, JavaFX & SWT 3
F Mit TAB JTextPane wechseln AWT, Swing, JavaFX & SWT 5
D Swing JPanel Hintergundsbild öfters wechseln. AWT, Swing, JavaFX & SWT 3
J LayoutManager Layout über JRadiobutton Wechseln AWT, Swing, JavaFX & SWT 6
J Ansicht wechseln zw. Spielfeld und Optionen AWT, Swing, JavaFX & SWT 3
D Farbe bei einem JButton wechseln AWT, Swing, JavaFX & SWT 4
D Mit der Maus in verschiedene Modi wechseln AWT, Swing, JavaFX & SWT 15
O Zwischen mehreren Bildern wechseln AWT, Swing, JavaFX & SWT 6
G Swing ->mainpanel wechseln bei Klick auf MenuItem (NetB.6 AWT, Swing, JavaFX & SWT 3
S GUI, dynamisches Wechseln von JPanels in einem JFrame AWT, Swing, JavaFX & SWT 2
Kirua Problem: Farbe Dinamic zu wechseln AWT, Swing, JavaFX & SWT 9
G Zwischen Panels in einem JFrame wechseln AWT, Swing, JavaFX & SWT 4
M Fenster wechseln bzw. ein/ausblenden AWT, Swing, JavaFX & SWT 2
P in JFrame zwischen verschiedenen JPanels wechseln AWT, Swing, JavaFX & SWT 7
G GUI - Inhalte wechseln (Eingabe-Assistenten programmieren) AWT, Swing, JavaFX & SWT 2
A SWT ViewPart wechseln AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen


Oben