2012-04-18 63 views
24

Estoy haciendo una aplicación en JavaFX 2.0. Desde mi ventana principal estoy comenzando una nueva ventana con algunas configuraciones. Después de que haya terminado de ajustar la configuración, quiero presionar un botón como "Guardar cambios".JavaFX 2.0: Cerrar una etapa (ventana)

Deseo guardar este cambio y cerrar la ventana. Al cerrar me refiero a matarlo, no colocarlo en el fondo o establecer la visibilidad. He leído acerca de un método Stage.close()

http://docs.oracle.com/javafx/2.0/api/javafx/stage/Stage.html

Como se puede ver que es similar al método Ocultar(), que sólo oculta la ventana, no la cierre.

P: ¿Alguien sabe algún método o tiene algún código que me ayudaría a cerrar una ventana?

Toda ayuda será muy apreciada. Gracias!

+0

http://stackoverflow.com/questions/13567019/close-fxml-window-by-code-javafx –

Respuesta

41

la documentación que los estados vinculados que stage.close():

cierra esta etapa. Esta llamada es equivalente a hide().

Como hide() es equivalente a close() y close() cierra la etapa, a continuación, hide() también cierra la etapa.

Cuando todas las etapas de una aplicación están ocultas (o cerradas si lo desea, porque es lo mismo), la aplicación finaliza. Confuso, lo sé, pero así es como el equipo de JavaFX decidió nombrar e implementar las acciones.

Si lo desea, el método Platform.setImplicitExit(boolean) se puede utilizar para desactivar el comportamiento predeterminado de salir de la aplicación cuando la última ventana está cerrada u oculta.

+0

Gracias por la explicación , ¡realmente ayudó a mi comprensión! :) – haakonlu

+0

Me pregunto si Window.hide() también es equivalente a Stage.hide() y, por lo tanto, Stage.close() si una ventana es la única ventana del escenario? Entonces no necesitaría pasar una referencia al escenario. –

+0

No entiendo tu comentario Stefan. Es posible que desee crear una nueva pregunta en su lugar. – jewelsea

15

Esto funcionó perfectamente para mí (con la importación de Node):

((Node)(event.getSource())).getScene().getWindow().hide(); 
+0

Estoy tratando de ocultar la ventana del elemento de menú ActionEvent pero obteniendo la excepción "menuitem no se puede convertir a Node". Aquí está la excepción 'Causado por: java.lang.ClassCastException: javafx.scene.control.MenuItem no se puede convertir en javafx.scene.Node' –

Cuestiones relacionadas