Sincronizar JFrames para solicitar datos y otros....

Calypso
23 de Mayo del 2002
Estoy desarrollando un programa con todo su entorno grafico y sus parafernalias. Bueno el UI lo estoy haciendo con Swing.

Pongo el problema que me estoy encontrando en diferentes partes del programa.

Tengo una JList donde le puedo insertar mas elementos (en mi caso Strings) con un JButton. Cuando apreto en el JButton lo que pasa es lo siguiente:

.
.
.
JEditTE jeteAux = new JEditTE(_cjlList);
JDialog jdAux = new JDialog(jeteAux, false);
// En este punto se abre un JDialog con la
// ventana que he creado con JEditTE.
// Esta ventana tiene un campo de texto
// donde escriviremos el texto que queremos
// poner en la JList. El parametro que le
// entramos a JEditTE es una clase que he creado
// que entre otras cosas me devolvera el String
// que escrivira el user cuando le aparezca la
// ventana con el JDialog.

....
// A continuacio viene el codigo que lo que hace
// es coger el String que ha escrito el user,
// i actualizar la JList.
...


El problema esta en que cuando grito el JDialog con el frame que le paso como parametro. Entonces
continua con la ejecucion, en vez de esperar a que cierre el JDialog, i continuar ejecutando.

El problema que lleva esto, es que al no esperar a que cierre el JDialog, el user escrivira el String que quiera, pero la ejecucion acabara antes que acaba el user de escrivir, de manera que no se actualiza la JList.

La JList se actualiza cuando el usuario, vuelve a apretar sobre el boton, entonces se guarda lo que el usuario habia escrito, y entonces si que el String ya esta listo, pero bueno eso no es plan.

Si alguien sabe como solucionar esto me haria un gran favor.

Despues otra cosa referente a los JDialog. Si quiero que cuando aparezca un JDialog, todas las ventanas que habian activas, no lo esten y no puedo activarlas a menos que cierre el JDialog, como puedo hacerlo?

Y por ultimo y os dejo en paz, en el Jdialog ese que creaba, hay un boton de cancelar y otro de aceptar. Si cuando los aprieto, quiero que me hagan varias cosas, y al final me cierren el JDialog (como si hubiera yo cerrado la ventana) como lo hago?

En todas las dudas, si pudierais poner algun ejemplo de codigo os lo agradeceria.

Muchisimas gracias.

Luismahou
23 de Mayo del 2002
Hola!

Para hacer que el frame espere a que se cierre el diálogo para continuar con la ejecución, tienes que hacer modal dicho diálogo. Esto se consigue así:
myDialog.setModal(true);
Todos los diálogos que son modales no permiten al usuario interactuar con ninguna ventana. Sólo se puede interactuar con el diálogo hasta que este se cierre.

Para cerrar un frame o un dialog tienes que llamar a su método dispose(). Para el caso del botón aceptar:

// Dentro de tu clase JDialog
botonAceptar.addActionListener( new ActionListener()) {
tareasARealizar();
this.dispose();
}

Luismahou