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();
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.
- javier23's blog
- Inicie sesión o regístrese para enviar comentarios
Comentarios
- en swing suponiendo que
- en swing suponiendo que extiendes del jframe y este es el evento del boton
//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.