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.

JOptionPane cerrando conjunto de botones en showOptionDialog.

Estoy tratando de encontrar una manera de cerrar la ventana después de hacer clic en los JButtons. El OptionDialog no se cierra después de hacer clic. Aquí está lo que tengo hasta ahora:

JButton[] option = new JButton[2];
option[0] = new JButton("X"); option[0].addActionListener(this);
option[1] = new JButton("O"); option[1].addActionListener(this);
JOptionPane.showOptionDialog(null, "¡Por favor elige!", "", 0, JOptionPane.DEFAULT_OPTION, null, option, null);

¿Cuál podría ser un buen enfoque para esto?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Un enfoque para cerrar la ventana después de hacer clic en los JButtons sería agregar una línea de código que cierre la ventana al hacer clic. Dentro del método actionPerformed, puedes llamar al método dispose() para cerrar la ventana. Aquí tienes un ejemplo de fragmento de código:

    @Override
    public void actionPerformed(ActionEvent e) {
        // obtener el botón clicado
        JButton button = (JButton) e.getSource();
    
        // verificar qué botón fue clicado
        if (button.getText().equals("X")) {
            // realizar acción para la opción X
        } else if (button.getText().equals("O")) {
            // realizar acción para la opción O
        }
    
        // cerrar la ventana después de hacer clic
        Window window = SwingUtilities.getWindowAncestor(button);
        window.dispose();
    }
    

    En este ejemplo, se llama al método dispose() en el objeto Window que se obtiene utilizando el método SwingUtilities.getWindowAncestor. Esto cerrará la ventana que contiene el JOptionPane.

Comments are closed.