bloquear un Frame

lucani
29 de Abril del 2010
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

César Augusto Cruz Tapia
01 de Mayo del 2010
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.

x7iBiT
01 de Mayo del 2010
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);

Alfred
03 de Mayo del 2010
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()).

AZB
03 de Mayo del 2010
no me funciona

kalua
25 de Mayo del 2010
JFrame ventana=new JFrame();

ventana.setSize(200,200)
ventana.setVisible(true);

JDialog sub=new JDialog(ventana,true);

sub.setSize(20,20)
sub.setVisible(true);