JavaFX Templating

Saheeda

Top Contributor
Hallo,

angenommen, ich habe ein Programm mit mehreren Unterseiten, die sich aber alle gemeinsame Elemente teilen, z.B. eine Menüleiste oder ein Logo.

Die für mich simpelste (und unschönste) Lösung wäre, sämtliche Unterseiten nach demselben Schema aufzubauen und wenn notwendig die alte Seite zu schließen und die neue zu erstellen:


Code:
<BorderPane>
    <top>
        <fx:include src="menu.fxml"/>
    </top>
    <center>
   
        // Variabler Inhalt
   
    </center>
</BorderPane>

Gibt es in JavaFX dafür auch eine andere, bessere Lösung?

Meine Idee wäre z.B., dass ich ein Layout habe und innerhalb dessen einen Platzhalter festlege, dessen Inhalt nach Bedarf nachgeladen wird.
Geht das und wenn ja, wie?

Oder gibts dafür in Java irgendeine awesome sophisticated Variante, an die ich jetzt noch gar nicht gedacht habe?
 

MichaProgs

Aktives Mitglied
Hi Saheeda,

ich hab es bislang mit deiner Variante gemacht. Die Inhalte lade ich mit Programmstart und je nach Navigationspunkt änder ich via Listener den Inhalt von BorderPane <center>.

Bei Swing gab es dazu ja das CardLayout. Bei JavaFX gibt es das allerdings nicht. Darum denke ich das wird die einzige Möglichkeit sein.

Gruß
TB94
 

dzim

Top Contributor
Die Lösung ist hier schon fast angedeutet: Lege dir separate FXMLs an und tausche den Center deiner BorderPane einfach aus...
Ob du dabei die Unterseiten wie dein Menü schon alle includierst (aber noch nicht an den Center anhängst) oder im Controller lädst, wenn du sie brauchst, bleibt dabei ganz dir überlassen.

Falls du noch Fragen hast und mein kurz dahingeschriebenes nicht verstehst, frag einfach...
 

Saheeda

Top Contributor
@dzim

Danke!

Ich war gar nicht auf die Idee gekommen, auch das BorderPane als Root-Knoten binden und über den Controller bearbeiten zu können.
 

Neue Themen


Oben