bloquear un Frame
Hola buen dia, estoy aprendiendo java una pregunta, tengo un frame que llama a otro frame puedo bloquear el primer frame para que no acepte modificaciones hasta que se cierre el frame "hijo", o como le puedo hacer intente con un JDialog pero no funciono :S, agradezco la ayuda
Son ventanas modales lo que buscas. Busca en las librerias java.awt o javax. swing. Si tu cuadro solo muestra una advertencia o pides introducir datos no se algo por el estilo prueba con JOptionPane son cuadros modales.Los importas de javax.swing y tiene diferentes constructores checalo.
Hazlo con un JDialog. Fíjate en que el constructor de JDialog tiene como argumento un booleano llamado "modal". Cuando modal está a true bloquea el frame padre hasta que termine. Y luego para que el JDialog termine simplemente tienes que hacerle un this.setVisible(false);
Te paso la respuesta q dio en otro foro Ezamudio:
Lo más fácil es que llames uno de los métodos de JOptionPane, como JOptionPane.showInputDialog(frame), o sea le pasas tu frame como parámetro. Si eso no te funciona, intenta pasarle frame.getContentPane() como parámetro. Eso va a mostrar un diálogo modal con el contenido de tu JFrame.
Si eso no te funciona y tienes un JFrame que solamente necesitas mostrar como JDialog una vez, puedes crear un JDialog nuevo con el mismo título y luego hacer dialog.setContentPane(frame.getContentPane()); luego de eso llamas dialog.setVisible(true) que según recuerdo te va a bloquear el hilo que llama ese método hasta que el usuario cierre el diálogo, así que en la línea que sigue ya puedes hacer nuevamente frame.setContentPane(dialog.getContentPane()).