es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Diálogo de JOptionPane Determinar si se ha hecho clic en el botón Cerrar.

Quiero crear un diálogo con un checkbox y un combobox. Esto es lo que tengo:

JCheckBox checkBox = new JCheckBox("Mi checkbox");

JLabel modeLabel = new JLabel("Seleccionar modo:");
String[] modos = {"A", "B", "C"};
JComboBox<string> modosComboBox = new JComboBox<>(modos);
JPanel panelModo = new JPanel(new FlowLayout());
panelModo.add(modeLabel);
panelModo.add(modosComboBox);

JPanel panelDialogo = new JPanel();
panelDialogo.setLayout(new BoxLayout(panelDialogo, BoxLayout.Y_AXIS));
panelDialogo.add(checkBox);
panelDialogo.add(panelModo);

JOptionPane.showMessageDialog(null, panelDialogo);

¿Cómo puedo saber si se hizo clic en el botón Cerrar (es decir, “X”) o en el botón Aceptar? Necesito saber cuál de estos dos botones cerró el diálogo.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Puede utilizar el método JOptionPane.showMessageDialog() para determinar qué botón fue presionado. Este método devuelve un valor entero que indica qué botón fue presionado. Los siguientes valores son devueltos:

    • JOptionPane.OK_OPTION si se presionó el botón OK
    • JOptionPane.CANCEL_OPTION si se presionó el botón Cerrar (es decir, “X”)

    Por ejemplo:

    int resultado = JOptionPane.showMessageDialog(null, dialogPanel);
    
    if (resultado == JOptionPane.OK_OPTION) {
        // Se presionó el botón OK
    } else if (resultado == JOptionPane.CANCEL_OPTION) {
        // Se presionó el botón Cerrar (es decir, "X")
    }
    

Comments are closed.