Hola:
Desde un applet puedes hacer diálogos modales, pero tendrás problemas de seguridad si intantas hacerlo desde un browser que no sea el appletviewer. Si quieres saltarte los problemas de seguridad, tendrás que firmar el applet, si quieres información de eso escribeme y te la mando.
A lo que iba, he entendido que el problema es obtener el frame del applet para que el diálogo sea modal. Yo conozco dos modos de hacerlo, el primero lo he utilizado y seguro que funciona, es así:
//obtener el frame del applet con el cual podré hacer dialogos modales
Frame f = javax.swing.JOptionPane.getFrameForComponent(this);
if(f == null) {
escribe("No puedo obtener el frame del applet, tocan dialogos no modales!!!!");
f= new java.awt.Frame();
}
else escribe("TENGO EL FRAME!!!!!");
Con "f", ya puedes crear tu diálogo.
El otro modo no lo he probado, lo encontré en la red y si no trabajas con swing y quieres ahorrarte importar la clase JOptionPane con el applet, puede serte util:
f = this.getParent();
while(f != null && !(f instanceof java.awt.Frame)) {
f = f.getParent();
}
if (f == null) {
escribe("No puedo obtener el frame del applet, tocan dialogos no modales!!!!");
f= new java.awt.Frame();
}
Espero que te sirva, suerte!!!