Java lernen

JavaFX Altes Fenster (FXML Datei) löschen

Diskutiere Altes Fenster (FXML Datei) löschen im AWT, Swing, JavaFX & SWT Forum; Hallo Freunde, ich habe mit dem Scene Builder eine grafische Benutzeroberfläche programmiert, bei der ich per Button-Click ein neues Fenster(FXML...

  1. mu7ti
    mu7ti Mitglied
    Hallo Freunde,

    ich habe mit dem Scene Builder eine grafische Benutzeroberfläche programmiert, bei der ich per Button-Click ein neues Fenster(FXML Datei) in die Scene setze. Nun habe ich bemerkt, dass das alte Fenster im Hintergrund noch aktiv ist. Meine Frage ist, wie kann ich das alte Fenster nach dem wechsel löschen?
     
  2. Vielleicht hilft dir diese Seite hier weiter (Klick!)
  3. thet1983
    thet1983 Aktives Mitglied
    mit der Window Methode
    Code (Java):
     myStage.hide()
     
    dzim gefällt das.
  4. mu7ti
    mu7ti Mitglied
    Würde das nicht die Stage beseitigen ? Ich möchte nur die alte Root in der Scene löschen.
     
  5. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Was meinst du mit "altes Fenster im Hintergrund noch aktiv"?


    Tausch doch einfach innerhalb der Stage die Scene aus? Ansonsten sollte Scene#setRoot eigentlich Root ersetzen.
     
  6. mu7ti
    mu7ti Mitglied
    Ich habe es so gemacht, dass die Root bei einem Fensterwechsel ausgetauscht wird. Die zweite Seite hat einen ChangeListener. Wenn ich jetzt zwischen den beiden Seiten hin und her switche, haben ich nachher mehrere Listener die aktiv sind.
     
  7. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Einen ChangeListener auf was?

    Der üblichste Weg wäre, die Scene zu tauschen.
     
  8. mu7ti
    mu7ti Mitglied
    Auf der ersten Seite lade ich Daten aus einer Datenbank. Diese übergebe ich in einer ObservableList der zweiten Seite. Auf der zweiten Seite habe ich dann den ChangeListener auf diese ObservableList gesetzt. Zusätzlich habe ich eine Konsolenausgebe in den ChangeListener gepackt, um zu testen, ob der ChangeListener überhaupt anspringt. Dann bemerkte ich aber, dass bei mehrmaligem Seitenwechsel mehrer ChangeListener aktiv sind.
     
  9. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    ChangeListener musst du selber wieder aufräumen, da gibts (afaik) keinen "automatischen" Weg für ;)
     
  10. mu7ti
    mu7ti Mitglied
    Soweit ich es verstanden habe, erzeugt der FXMLLoader jedes Mal ein neues Objekt von dem Controller der jeweiligen fxml Datei. Und wenn man nach dem Wechsel das vorherige Objekt schließen oder löschen könnte, dann wäre auch der Listener weg. Liege ich falsch ?
     
  11. mrBrown
    mrBrown Super-Moderator Mitarbeiter
    Ja.
    Ja, nur musst du das "schließen" selbst implementieren.
    Die Liste hat eine Referenz auf den ChangeListener, die musst du selbstständig entfernen.
     
  12. Hinweis: Du möchtest Java lernen? Vielleicht hilft dir diese Seite hier weiter.
Die Seite wird geladen...

Altes Fenster (FXML Datei) löschen - Ähnliche Themen

Neues Fenster öffnen altes schützen
Neues Fenster öffnen altes schützen im Forum Java Basics - Anfänger-Themen
Vokaltester
Vokaltester im Forum Java Basics - Anfänger-Themen
Gemaltes Bild über saveDialog speichern unter
Gemaltes Bild über saveDialog speichern unter im Forum AWT, Swing, JavaFX & SWT
Altes Applet anpassen
Altes Applet anpassen im Forum Allgemeine Java-Themen
altes JPanel entfernen und neues öffnen
altes JPanel entfernen und neues öffnen im Forum Java Basics - Anfänger-Themen
Thema: Altes Fenster (FXML Datei) löschen