JavaFX Inhalt eines SplitPane's durch Menü-Auswahl ändern?

Diskutiere Inhalt eines SplitPane's durch Menü-Auswahl ändern? im AWT, Swing, JavaFX & SWT Forum; Hallo Leute, ich versuche mich gerade in JavaFX einzuarbeiten. Ich bin ein kürzlich ausgelernter FIAE und fange hier gerade bei 0 an. Basic-Java...

  1. config_de
    config_de Neues Mitglied
    Hallo Leute,

    ich versuche mich gerade in JavaFX einzuarbeiten. Ich bin ein kürzlich ausgelernter FIAE und fange hier gerade bei 0 an. Basic-Java Kenntnisse sind da, mit JavaFX beschäftige ich mich seit gestern.

    Momentan habe ich eine kleine Login-Scene.
    Nach der Username/Passwort-Eingabe wechsel ich über den Anmelde-Button auf die folgende Scene:

    [​IMG]

    AnchorPane > vertikales SplitPane > horizontales SplitPane. Und hier und da ein paar kleine VBox'en.

    Links habe ich mein Menü worüber ich nun den angezeigten Inhalt im unteren rechten Bereich ändern möchte.

    Wie setzt man das am besten um? Die komplette Scene zu wechseln erscheint mir etwas übertrieben. In einem anderem Tutorial habe ich 2 FXMLs gebaut und die eine dann in die andere quasi intergriert. Das eine war BorderPane und das andere AnchorPane. Das konnte ich da einfach mit ~ BorderPane.setCenter(xxx) oder so machen.

    Aber wie mache ich das denn hier?
    Ich weiß gerade gar nicht so richtig wonach ich überhaupt suchen soll :confused:

    Ich hatte gestern irgendetwas vom CardLayout gelesen, aber das scheint wohl eher Richtung Swing/AWT oder so gewesen zu sein.

    Gibt es da eine Lösung oder muss ich wirklich jedes mal die komplette Scene wechseln? Ein Schlagwort mit dem ich suchen kann reicht mir schon :)

    Achso und ich benutze InelliJ und den Scene Builder.

    config
     
  2. Vielleicht hilft dir dieser Java-Kurs hier weiter --> (hier klicken)
  3. andy82
    andy82 Neues Mitglied
    Entspricht Cardlayout in Swing => StackPane (Stappel!) in JavaFx. Benutze Node.toFront() oder toBack().
     
    Zuletzt bearbeitet: 8. Sep. 2017
  4. config_de
    config_de Neues Mitglied
    Danke für die Antwort, es war aber nicht ganz wonach ich gesucht habe :)
    Mittlerweile bin ich von SplitPane weg und habe einfach ein Pane im Pane gebaut.
    Den "Wechsel" des Inhalts vollziehe ich einfach mit diesen Methoden:

    Pane.getChildren().clear();
    Pane.getChildren().addAll(x);

    Keine Ahnung ob das jetzt perfekt ist, aber mein gewünschtes Ziel ist erstmal erreicht :cool:
     
  5. andy82
    andy82 Neues Mitglied
    @config.de: es gibt mehrere Wege nach Rome. StackPane ist selbst bereits eine Pane, wo mehere Pane als Stappel auf einannder liegen können. Was Du machst in Prinzip das gleiche, aber warum mus man das Rad neu finden, wenn es bereit da ist. Ausserdem versuche mal die Grösse deines Haupt Pane zu verändern => Passen die Chidren Pane automatisch daran?
     
    Zuletzt bearbeitet: 11. Sep. 2017
  6. config_de
    config_de Neues Mitglied
    Okay dann habe ich das mit dem Stackpane noch nicht richtig kapiert. Und nein, in meiner App passt sich gerade nur wenig automatisch so an wie es soll (eigentlich nur das Hintergrundbild :D)

    Ich merk schon. Erstmal befasse ich mich jetzt mit den ganzen Layouts richtig.
    Da muss ich wohl noch ein paar Tutorials wälzen. Die anfängliche Lernkurve hat es schon irgendwie in sich :rolleyes:

    Danke für die Hilfe :)
     
  7. config_de
    config_de Neues Mitglied
    Also ich habe mein Pane jetzt durch das StackPane ausgetauscht.

    Mein Projekt ist jetzt so aufgebaut:

    Hauptansicht.fxml (Ein AnchorPane in dem das StackPane und einige VBoxen enthalten sind, quasi der grobe Rahmen)
    Menüpunkt1-XY.fxml's (enthalten AnchorPanes mit jeweils verschiedenen Inhalten..Tabellen, Labels,Buttons etc., diese lade ich dann in das StackPane)
    Controller, Main etc.

    Sollte ich jetzt alle AnchorPanes dem StackPane hinzufügen? Oder ist es sinnvoller nach wie vor immer nur eines hineinzuladen und den StackPane dann immer wieder zu leeren. Ich vermute eher ersteres, sonst hättest du mir nicht zum StackPane geraten. Aber macht das keine Probleme hinsichtlich der Performance? Wäre es nicht ressourcensparender immer nur das eine gebrauchte Pane zu laden anstatt alle auf einmal? Oder ist das eher zu vernachlässigen
     
  8. andy82
    andy82 Neues Mitglied
    Ich würde alle entsprechende Panen in den StackPane einbetteln lassen. Für jeden Menu-(oder Buton-)Select wird die entsprechende Pane mit toFront() angezeigt.
    Eine Gui an sich ist kein Problem sowohl wegen Resourcen noch Performence. Man soll nur nicht Logik nicht in eine endlose Schleife geraten oder Gui zum tausend Mal neuzeichen lassen. Wenn man kapiert, was alles im Hintergrund läuft, meine Erfahrungen nach ist Java genau so schnell wie jede andere Sprache (z.B. C++). Es gibt keine bessere Sprache, es gibt nur schlechte Programmierer., egal in welchen Sprachen.
    Ich würde empfehlen, diese Seite anzuschauen:
    http://o7planning.org/en/10623/javafx-tutorial-for-beginners
    dort gukst Du erstmal die Animationen an, um schnell einen Überblick alles, was in Fx gibt. Bei der Anwendung kann man später die Code (in Oracle-(Open-)JDK) genauer schauen, analysieren.
     
    Zuletzt bearbeitet: 13. Sep. 2017
  9. andy82
    andy82 Neues Mitglied
    Was ich da oben erzählt, betrifft nämlich rechten Teil Deines Haupt Fenster, wenn Du links als Menu-Pane benutze.
     
  10. config_de
    config_de Neues Mitglied
    Okay danke für die Antwort, ich schau mir das heute Abend mal näher an. Und danke für den Tutorial-Link.
    Von guten Tutorials kann ich gerade gar nicht genug bekommen :D
     
  11. JStein52
    JStein52 Bekanntes Mitglied
    Die Aussage für sich alleine ist falsch. Aber was richtig ist, dass es bestimmte Anwendungsdomänen gibt wo es völlig egal ist ob du Java oder C++ nimmst. Es gibt aber umgekehrt welche bei denen du mit Java auf keinen grünen Zweig kommst.
     
Die Seite wird geladen...

Inhalt eines SplitPane's durch Menü-Auswahl ändern? - Ähnliche Themen

Inhalt meines JTables wird falsch dargestellt
Inhalt meines JTables wird falsch dargestellt im Forum AWT, Swing, JavaFX & SWT
Teilinhalt eines Strings testen
Teilinhalt eines Strings testen im Forum Java Basics - Anfänger-Themen
Zugriff auf Inhalt eines Elements
Zugriff auf Inhalt eines Elements im Forum XML und Co.
Inhalt eines externen Textdokuments an einen String übergeben
Inhalt eines externen Textdokuments an einen String übergeben im Forum Java Basics - Anfänger-Themen
Feldeinträge/Feldinhalt eines Arrays
Feldeinträge/Feldinhalt eines Arrays im Forum Hausaufgaben
Thema: Inhalt eines SplitPane's durch Menü-Auswahl ändern?