Announcement

Collapse
No announcement yet.

JavaFX - Close()

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • JavaFX - Close()

    Hy, ich habe eine Anwendung die ich über JavaFX (JavaFXML) programmiert habe.

    Alles funktioniert wie ich will, nur das Schließen bereitet mir Probleme.

    Da ich mit JavaFXML das Fenster programmiert habe, bekomme ich es nicht hin, das Fenster über einen Button zu schließen.

    Da die Buttons per fxml erstellt werden, habe ich eine Controller-Class, die die Events behandelt.

    Mein Problem ist nun, wie bekomme ich es hin, dass ich das Fenster per "Schließen"-Button beenden kann.

    Initialisierung des Fensters:
    [highlight=java]
    package com.gast.personendaten;

    import java.util.ResourceBundle;
    import javafx.application.Application;
    import javafx.fxml.FXMLLoader;
    import javafx.scene.Parent;
    import javafx.scene.Scene;
    import javafx.stage.Stage;

    /**
    * Main-Fenster für die Erfassung der Personendaten
    * @author Alexander.Locher
    * @version 1.0
    * @since 25.04.2012
    * <br>Initialisierung des Fensters für die Eingabe
    */
    public class PersonendatenMain extends Application
    {
    personenwindowController pwC;
    Stage stopStage;
    /**
    * Initialisierung des Fensters für Personendaten-Eingabe
    * @param stage
    * @throws Exception
    * @version 1.0
    * @since 25.04.2012
    */
    @Override
    public void start(Stage stage) throws Exception {


    stage.setTitle("Personendaten");

    Parent root = FXMLLoader.load(getClass().getResource("personenwi ndow.fxml"),
    ResourceBundle.getBundle("com.gast.personendaten.p ersonenwindow"));
    Scene scene = new Scene(root, 520, 360);
    stage.setScene(scene);

    //Style-Sheet angeben
    scene.getStylesheets().add("com/gast/personendaten/personenwindow.css");

    stage.show();

    pwC = new personenwindowController(stage);

    }

    }

    [/highlight]

    hier werden die Events behandelt:
    [highlight=java]
    package com.gast.personendaten;

    import java.util.ArrayList;
    import java.util.List;
    import javafx.event.ActionEvent;
    import javafx.fxml.FXML;
    import javafx.stage.Stage;

    /**
    * Controller für die Event-Behandlung des Personen-Eingabe-Fensters
    *
    * @author Alexander.Locher
    * @version 1.0
    * @since 24.04.2012 <br><br>Regelung der Events für: <br>- Daten speichern
    * <br>- Fenster schließen
    */
    public class personenwindowController
    implements PersonendatenInterface
    {

    private List<String> felderPersonendaten = new ArrayList<>();
    private Stage stage;

    /**
    * Leerer Konstruktor
    */
    public personenwindowController() {
    }

    public personenwindowController(Stage stage) {
    this.stage = stage;

    System.out.println("Konstruktor geladen : " + this.stage.toString());
    }

    /**
    * Konstruktor für das Fenster der Personeneingabe
    * @param list ArrayList für die Eingabefelder<br>Die Eingabefelder sind
    * die Beizeichnungen der Eingabefelder<br>- Vorname<br>- Nachname
    * <br>- Straße<br>- PLZ<br>- Ort
    * @version 1.0
    * @since 24.04.212 <br>
    * <br>Die Übergebenen Parameter werden
    */
    public personenwindowController(List<String> list) {
    this.felderPersonendaten = list;

    }



    /**
    * Speichern der eingegebenen Daten in der Datenbank
    * @param event
    * @throws Exception
    * @version 1.0
    * @since 26.04.2012
    */
    @FXML
    protected void btnSpeichern_Click(ActionEvent event) throws Exception {
    System.out.println("Speichern");
    }

    /**
    * Schließen der Anwendung
    * @param event
    * @throws Exception
    * @version 1.0
    * @since 26.04.2012<br>
    * <br>Schließen des Fensters für die Eingabe der Personendaten
    */
    @FXML
    protected void btnSchliessen_Click(ActionEvent event) throws Exception {
    stage.close();
    }
    }

    [/highlight]

    Ich übergebe das Objekt stage nach stage.show(); an den Controller. Sobald aber der Event für den Button ausgeführt wird, wird sofort ein Fehler ausgelöst.

    Die Sources sind im Anhang.

    Im Internet habe ich nichts gescheites gefunden, mir würden ein paar Links genügen, die einen blutigen Anfänger weiterbringen.

    Danke für Eure Unterstützung

    Gruß Lerando
    Attached Files

  • #2
    Hast du das danach hinbekommen? Ich habe dasselbe Problem jetzt auch.

    Comment


    • #3
      Originally posted by Toni91 View Post
      Hast du das danach hinbekommen? Ich habe dasselbe Problem jetzt auch.
      Hallo Toni91,

      leider habe ich mich in letzter Zeit nicht mehr damit beschäftigt. Ich denke, wenn Du in google java stage.close() eingibst, dann bekommst Du sicher hilfe.

      Wenn es funktioniert hat, dann bitte ich Dich, das Du es kommentierst.

      Gruß und viel Erfolg.

      Lerando

      Comment

      Working...
      X