Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Cancelar evento

Estas en el tema de Cancelar evento en el foro de Java en Foros del Web. Hola a todos, Mi proposito es sencillo, estoy introduciendome en esto de Swing y AWT de Java y tengo un pequeño ejemplo en donde creo ...
  #1 (permalink)  
Antiguo 25/07/2013, 08:30
 
Fecha de Ingreso: julio-2013
Mensajes: 10
Antigüedad: 10 años, 9 meses
Puntos: 0
Cancelar evento

Hola a todos,

Mi proposito es sencillo, estoy introduciendome en esto de Swing y AWT de Java y tengo un pequeño ejemplo en donde creo una ventana con JFrame le pongo un JLabel y cuando pulso la X para salir pregunto ¿Seguro que desea salir?,


Y mi proposito es que si le da a si, sale, pero si le da a no que no haga nada ni cierre la ventana ni nada.

Código:
frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                int exit = JOptionPane.showConfirmDialog(null,
                        "¿Seguro que quieres salir?", "¿Seguro?",
                        JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
                if (exit == JOptionPane.YES_OPTION || exit==JOptionPane.CLOSED_OPTION) {
                    JOptionPane.showMessageDialog(null, "Adios, "GoodBye", JOptionPane.WARNING_MESSAGE);
                    System.exit(0);
                }
            }
Así controlo el evento de la ventana si la cierra, y si dice que si, se sale pero no se que poner si dice que NO, no se como hacer que no se cierre la ventana.

Si alguien sabe una mejor forma, etc, de hacer este sencilla muestra que no tenga miedo :D

Gracias a todos ustedes :)
  #2 (permalink)  
Antiguo 25/07/2013, 11:17
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 11 años
Puntos: 9
Respuesta: Cancelar evento

Código Java:
Ver original
  1. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  2.  
  3.  
  4.         int x = JOptionPane.showConfirmDialog(this, "¿Desea SALIR?");
  5.         if (JOptionPane.OK_OPTION == x) {
  6.             System.exit(0);
  7.         }
  8.  
  9.     }

Si quieres que al cerrar la ventana también salga del programa, agrégale al if:
Código Java:
Ver original
  1. JOptionPane.CLOSED_OPTION == x
  #3 (permalink)  
Antiguo 25/07/2013, 14:14
 
Fecha de Ingreso: julio-2013
Mensajes: 10
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Cancelar evento

Cita:
Iniciado por cazador1992 Ver Mensaje
Código Java:
Ver original
  1. private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
  2.  
  3.  
  4.         int x = JOptionPane.showConfirmDialog(this, "¿Desea SALIR?");
  5.         if (JOptionPane.OK_OPTION == x) {
  6.             System.exit(0);
  7.         }
  8.  
  9.     }

Si quieres que al cerrar la ventana también salga del programa, agrégale al if:
Código Java:
Ver original
  1. JOptionPane.CLOSED_OPTION == x
Si ya pero en tu codigo si el if fuera false se quitaria la ventana aunque el programa seguiria funcionando pero la ventana se cerraria igual, yo quiero que despues de lo que tu has puesto se ponga un if ... ELSE (y aqui para que la ventana no se cerrara, aunque antes le dieron pero se arrepintió).

Esa es mi pregunta!, como si en Word le das a la X y despues dices no no quiero salir y sigues en el word, en este caso le das a la X te pregunta si quieres salir y si le das a No no debería hacer nada ni cerrarla ni nada.
  #4 (permalink)  
Antiguo 25/07/2013, 14:41
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 11 años
Puntos: 9
Respuesta: Cancelar evento

Ahhh, perdona entendi mal, crei que lo querias con un boton que cerrara el programa, si es con la X:

Código Java:
Ver original
  1. setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);//tienes que agregar esto nada mas
  2.  
  3.         this.addWindowListener(new WindowAdapter() {
  4.             @Override
  5.             public void windowClosing(WindowEvent e) {
  6.                 int exit = JOptionPane.showConfirmDialog(null,
  7.                         "¿Seguro que quieres salir?", "¿Seguro?",
  8.                         JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
  9.                 if (exit == JOptionPane.YES_OPTION || exit == JOptionPane.CLOSED_OPTION) {
  10.                     JOptionPane.showMessageDialog(null, "Adios");
  11.                     System.exit(0);
  12.                 }
  13.             }
  14.         }

Etiquetas: eventos, jframe, jlabel, joptionpane
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:41.