Article View: es.comp.lenguajes.java
Article #29016AWT: Tomar alternativas segun decision del usuario
From: Jose A. Brihuega
Date: Wed, 11 Feb 1998 00:00
Date: Wed, 11 Feb 1998 00:00
62 lines
2869 bytes
2869 bytes
Hola a todos:
Tengo un problema que me parece tan de programaci�n b�sica que me
resulta increible que sea tan complicado como se me est� presentando.
Estoy programando un applet que, una vez el usuario ha tecleado algo en
un determinado campo de texto, realiza unas acciones en
actionPerformed(), las cuales pueden no resultar exitosas seg�n como se
encuentre la red en ese momento. Cuando la operaci�n no tenga �xito,
quiero presentarle al usuario una ventana o cuadro de dialogo con un
mensaje y botones con opciones "reintentar" o "cancelar".
Aqu� es donde llega el problema, pues el programa ha de realizar
acciones distintas seg�n la elecci�n del usuario y, adem�s, si la
respuesta ha sido "reintentar" y continuan los problemas de red, habr�
que volver a sacar la ventana (en plan reiterativo).
Ser�a algo as�:
//Acciones previas
//....
//....
while (!pruebaOK())
if (respuestaUsuario() == CANCELAR)
return;
//Acciones posteriores
//...
//....
El m�todo pruebaOK() comprueba el estado de la red, y devuelve true o
alse seg�n si se puede continuar o no.
El m�todo que no soy capaz de hacer es respuestaUsuario(), que crear�a
un Frame con un mensaje y unos botones, devolviendo unos valores
predefinidos REINTENTAR o CANCELAR seg�n el boton pulsado. Esta funci�n
tendr�a que esperar la respuesta del usuario, en lugar de retornar
inmediatamente como hace.
El asunto es que el funcionamiento del AWT es as�ncrono, no es
bloqueante, como podr�a ser un getchar() en C. Por tanto, la l�gica de
programaci�n que he presentado arriba no me sirve.
La soluci�n bestia de bloquear a la fuerza el flujo con algo asi como
meterme en un bucle o hacer un Thread.currentThread().suspend() no vale
pues dejo bloqueado todo el sistema de eventos, y los botones dejan de
responder.
�Cu�l es la mejor manera de realizar esto manejando los eventos del AWT?
Se me ocurre dividir el trabajo entre varias funciones, donde cada una
responda a eventos de cada bot�n. Me resulta dif�cil adaptar la l�gica
del programa a esto, sobre todo si hay varias decisiones de ese tipo.
Este tipo de decisiones alternativas son normales en muchos programas,
as� que no veo l�gico que la implementaci�n sea tan compleja.
Gracias por adelantado.
jose.brihuega@uca.es
Technical Details
Message-ID:
<34E1943F.4585DB98@uca.es>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: 1116f3,d95308338d9aebb2,start X-Google-Attributes: gid1116f3,public From: "Jose A. Brihuega" <jose.brihuega@uca.es> Subject: AWT: Tomar alternativas segun decision del usuario Date: 1998/02/11 Message-ID: <34E1943F.4585DB98@uca.es> X-Deja-AN: 324111835 Content-Transfer-Encoding: 8bit Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Organization: Universidad de C�diz Newsgroups: es.comp.lenguajes.java