jDialog ¿modal?

Laura
24 de Marzo del 2004
Hola a [email protected]!
Tengo una applet que tiene un Jdialog y quiero que cuando éste (el Jdialog) este visible (sólo cuando este visible, no cuando exista...) no pueda acceder a ninguno de los botones del applet, vamos que mi applet este bloqueado hasta que el Jdiagog deje de estar visible. El Jdialog es quien decide cuando deja de estar visible, pero es el applet quien le dice cuando debe estar visible. He leído algo de que quizás mi Jdialog debería ser modal, pero no se como cambiar mi código para que lo sea. Si alguien sabe como hacerlo o si eso es realmente lo que yo quiero hacer, agradecería mucho su ayuda. Muchas gracias ;)


class AboutBox extends JDialog
{
public AboutBox(String titulo,String message1,Micanvas canvas,arbolb arbol) {
super();
......}
.....
}

public class aplicacion extends java.applet.Applet {
.........
caja= new AboutBox(titulo,mensaje1,canvas1,arbol);
........
}

lenny_arias
24 de Marzo del 2004
mhh bueno si kieres q tu JDialog este sobre el applet solo usa el metodo show();
osea:
JDialog obj=new JDialo(////////)
obj.show();
y listo mientras el JDialog este visible o exista estara sobre tu applet y no se podra usar este.. ojala t sirva chau

Laura
24 de Marzo del 2004
Gracias lenny_arias pero no es la solución,pues ya muestro asi el jDialog pero puedo pulsar en otros botones del applet.El JDialog es más pequeño q el applet y puedo dar en otro botón, quiero que sea imposible,supongo que porque este bloqueado,

Laura
24 de Marzo del 2004
Hola a [email protected]!

Sigo sin encontrar la solución :( , seguro que alguno la sabe, porfavor diganme algo...

chuidiang
24 de Marzo del 2004
El dialogo se hace modal desde el constructor.

// El true es para que sea modal
new JDialog (ventanaPadre, true);

El problema es que debes pasarle una ventana padre (Frame o Dialog) y el Applet no es ninguna de esas. No veo forma de hacer un dialogo modal con un applet.

Otra opcion es deshabilitar el applet cuando muestres el dialogo.

applet.setEnabled (false);

Esto hará que no se pueda tocar en el. Debes volverlo a habilitar cuando cierres el dialogo

Se bueno.

Invitado
24 de Marzo del 2004
Prueba esta que creo aun es mas sencilla, sustituye la linea que tienes:
super();
por esta:
super(parent, modal);

Saludos