2017-10-19 10 views
-2

Ich benutze Scene Builder, um eine JavaFX GUI-Anwendung zu erstellen. Ich versuche, so etwas zu implementieren, mit FXML:FXML zum Öffnen einer neuen Szene über die Schaltfläche

reportButton = new Button("Report"); 
reportButton.setOnAction(e -> ReportPage.display()); 

aber ich kann es nicht herausgefunden, wie zu tun, dass die Controller-Seite mit. Kann mir bitte jemand sagen, wie mache ich das? Vielen Dank

+0

Bitte senden Sie mehr Code und die fxml Datei (en) ... Es hängt wirklich davon ab, wie Sie haben die verschiedenen Ansichten implementiert. Haben sie eine gemeinsame Sicht der Eltern? – deHaar

+0

Definieren Sie einfach die entsprechende Methode in der Steuerung. Siehe [Dokumentation] (https://docs.oracle.com/javase/9/docs/api/javafx/fxml/doc-files/introduction_to_fxml.html#controller_method_event_handlers). –

+0

Versuchen Sie, eine neue Bühne zu eröffnen? Ändern Sie die aktuelle Szene? Legen Sie die Ansicht in einen Container auf der aktuellen Bühne? –

Antwort

0

Hier ist, wie könnte eine neue Bühne zeigen. Fügen Sie diesen Code in Ihrem auf Action-Funktion
(Sie diese Funktion mit Szene-Builder in Code hinzufügen: Auf Aktionseigenschaft)

@FXML 
private void reportButtonHandler(ActionEvent event) { 
    FXMLLoader fxmlLoader = new 
     FXMLLoader(getClass().getResource("pathtofxml/ReportPage.fxml")); 
    Parent root1 = (Parent) fxmlLoader.load(); 
    Stage stage = new Stage(); 
    //set what you want on your stage 
    stage.initModality(Modality.APPLICATION_MODAL); 
    stage.setTitle("Report Page"); 
    stage.setScene(new Scene(root1)); 
    stage.setResizable(false); 
    stage.show(); 
} 
+0

Vielen Dank, es funktioniert – ToniT

Verwandte Themen