He intentado un addWindowListener y aplicar la windowClosing, funciona, cuando presione el botón de cerrar, pero cuando uso Cmd+Q para cerrar, el windowClosing no es que se llama, ¿cómo puedo solucionarlo? Qué necesito para detectar Cmd+Q en mac, Alt + F4 en windows a través de la llave de escucha? Es que en general una escucha para el cierre de la ventana, lo que sea a través del botón de cierre o el teclado, o evento Ctrl+Alt+Delete o Cmd+Option+Esc a matar de foco? Gracias.

stackoverflow.com/questions/2061194/…
leepoint.net/notes-java/GUI/containers/10windows/…
¿Encontrar una solución a su problema? Por favor enviar su propia respuesta, si usted hizo.

OriginalEl autor DNB5brims | 2011-11-21

5 Comentarios

  1. 2

    No estoy seguro de cuál es la situación en Mac, pero en Windows es obtener la windowClosing() de devolución de llamada desde el botón cerrar; Alt-F4; y si se cierra la aplicación mediante el administrador de tareas. De no obtener la devolución de llamada si utiliza el administrador de tareas para matar el proceso, pero no me esperaba eso de todos modos.

    Has recordado a llamar setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); en el JFrame ejemplo, ¿no?

    OriginalEl autor vaughandroid

  2. 2

    hay un método más windowClosed()
    trate de reemplazar cosa método. espero que funcione para usted.

    +1 ejemplo stackoverflow.com/questions/7613577/…
    contestar al azar?
    Tengo tres muy simlair puestos, sí tienes razón, a continuación, al azar …
    parece (para mí) windowClosing se llama a si golpean a la X (y windowClosed no), y windowClosed se llama si me programación llamar a dispose. Raro.

    OriginalEl autor gprathour

  3. 1

    Puede utilizar esta osx biblioteca:
    com.apple.eawt.ApplicationListener

    handleQuit(ApplicationEvent event)

    Probablemente hará el truco.

    La información de la documentación:

    Llama cuando la solicitud es enviada al Salir evento. Este evento se genera cuando el usuario seleccione Salir en el menú de la aplicación, cuando el usuario escribe el Comando-Q, o cuando el control de usuario hace clic en su icono de la aplicación en el Dock y decide Dejar de fumar. Usted puede aceptar o rechazar la solicitud de dejar de fumar.

    Por supuesto, esta solución no funciona en Windows. Que yo sepa no hay una solución universal, por lo que este es, probablemente, la mejor manera de ir.

    OriginalEl autor Aloys

  4. 1

    Suena como que usted necesita para agregar algunos KeyListeners y una fábrica para detectar el que usted desea para un determinado sistema operativo.

    Echa Un Vistazo

    OriginalEl autor duffymo

  5. 0

    Como usted dijo windowClosing se llama cuando se hace clic en el (x) botón. Yo también estoy en un mac y la manera en que el CMD+Q para enviar una señal a la aplicación es el uso de En tiempo de ejecución.addShutDownHook

    Runtime.getRuntime().addShutdownHook(new Thread() {
        @Override
        public void run() {
            //code to run when CMD+Q is pressed
        }
    }

    OriginalEl autor Daniel V

Dejar respuesta

Please enter your comment!
Please enter your name here