Article View: es.comp.lenguajes.java
Article #26887Re: Eventos
From: Jonathan Revusky
Date: Fri, 20 Nov 1998 00:00
Date: Fri, 20 Nov 1998 00:00
79 lines
2451 bytes
2451 bytes
Fifeton wrote:
> Tenemos una pantalla con datos(textfields), y queremos saber si alguno
> de los textfields ha sido modificado.
> El c�digo, m�s o menos es el siguiente:
public class XXX{
private boolean modified=false;
private TextField textField1;
private TextField textField2;
.
void initialize(){
.
.
.
textField1.addTextListener(this);
textField2.addTextListener(this);
.
.
.
load();
System.out.println(getModified());
}
.
void load(){
textfield1.setText("xxx");
textfield2.setText("xx1");
.
.
.
setModified(false);
return;
}
boolean getModified(){
return modified;
}
void setModified(boolean value){
modified=value;
}
void textValueChanged(TextEvent event){
.
.
setModified(true);
}
}
> La cuesti�n, es que despu�s de cargar los textfields, ponemos la
> propiedad modificado a false, pero los eventos TextEvent llegan despu�s,
> a pesar de ser lanzados antes.
Parece que esto es un misterio, pero en realidad, no lo es.
Lo que pasa es que el m�todo textValueChanged se invoca en otro thread,
el AWT Dispatch thread, y tu setModified() se invoca sin duda en el
thread del main(). Si lo piensas un poco, es claro que el setModified()
debe retornar antes de que los m�todos de TextListener se invoquen. Y es
por eso el comportamiento que describes.
>C�mo puedo solucionar esto?
Soluci�n? Pues, una soluci�n es que el m�todo que hace
getModified(false) se tiene que invocar desde el AWT thread y DESPUES de
la PRIMERA vez que el texto se modifique.
Hay varias formas de conseguirlo, me parece.
Habr�a que pensarlo un poco....
Jonathan Revusky
--
Available for Java and Delphi Consulting
Make your .class files double-clickable
with SmartJ
http://www.bigfoot.com/~crystalline.solutions
Technical Details
Message-ID:
<3654B86C.988F169B@jet.es>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailReferences:
<36540E64.678EB8C3@iname.com>Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII X-Google-Thread: 1116f3,6a797a0f9dc89072 X-Google-Attributes: gid1116f3,public From: Jonathan Revusky <jrevusky@jet.es> Subject: Re: Eventos Date: 1998/11/20 Message-ID: <3654B86C.988F169B@jet.es> X-Deja-AN: 413691796 Content-Transfer-Encoding: 8bit References: <36540E64.678EB8C3@iname.com> X-Accept-Language: en Content-Type: text/plain; charset=iso-8859-1 Organization: Telefonica Transmision de Datos Mime-Version: 1.0 Reply-To: jrevusky@bigfoot.com Newsgroups: es.comp.lenguajes.java