style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

cerrar una ventana con javaFX

Buen dia.
Estoy desarrollando un sistema con javaFX el cual tiene 3 ventanas, mi problema es que cuando abro una nueva ventana no he encontrado como cerrar la ventana que llama a la nueva (osea, cerrar la actual y abrir la nueva).
Este es el metodo que uso el cual es llamado desde un boton:

            FXMLLoader loader = new FXMLLoader(ClienteControlDocumentosFX.class.getResource("Principal.fxml"));
            AnchorPane ventanaPrincipal = (AnchorPane) loader.load();
            Stage ventana = new Stage();
            ventana.initOwner(stagePrincipal);
            Scene scene = new Scene(ventanaPrincipal);
            ventana.setScene(scene);            
            ventana.show();

Espero me puedan ayudar para saber como cerrar una ventana, de antemano muchas gracias.

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de julgo

- en swing suponiendo que

- en swing suponiendo que extiendes del jframe y este es el evento del boton

public void actionPerformed(ActionEvent e){
//llamas  a la nueva ventana y la muestras
new ventana_principal().setVisible(true);
//escondes a la primera ventana
this.setVisible(false);
 }

- necesitas mantener una referencia del stage tal como el ejemplo mantiene del jframe con this
entonces prueba agregando una línea a tu código algo asi

 
FXMLLoader loader = new FXMLLoader(ClienteControlDocumentosFX.class.getResource("Principal.fxml"));
             AnchorPane ventanaPrincipal = (AnchorPane) loader.load();
             Stage ventana = new Stage();
             ventana.initOwner(stagePrincipal);
             Scene scene = new Scene(ventanaPrincipal);
             ventana.setScene(scene);            
             ventana.show();
//prueba sino cambias esta linea
primaryStage.close();

- no lo he probado por que ahora no tengo acceso a javafx pero primaryStage seria el argumento del método start ().
 public void start(Stage primaryStage) de tu aplicación principal desde la cual quieres llamar a otras.

Por alguna extraña razon

Por alguna extraña razon cuando el stage salia de la clase Main y lo queria cerrar en el controlador de la ventana actualmente visible, simplemente no funcionaba con ( Stage.close(); ) pero ya ha funcionado, seguramente algo estaba haciendo mal, Gracias por tu comentario Julgo.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">