PDA

Visualizza la versione completa : [JAVA] Cronometrare tempo


lecora_marco
31-03-2004, 15:17
Salve a tutti,
avrei un problema per quanto riguarda il cronometraggio di un dato intervallo di tempo.... ad esempio

START=true;
long END_TIME;
do { END_TIME=System.currentTimeMillis();

String miaStringa = String.valueOf(END_TIME);
JText1.setText(miaStringa);
System.out.println(miaStringa);

} while (CONNECTED==true);


La finestra grafica si "blocca" mentra la finestra di IO continua ad essere aggiornata... cosa sbaglio?

anx721
31-03-2004, 15:26
Quesllo stralcio di codice fa parte di un metodo invocato quando ad esempio viene premuto un bottone o viene gestito un altro evento dell'interfaccia grafica? Se č cosi si blocca perche il metodo non ritorna e dovresti eseguirlo in un thread separato.

lecora_marco
31-03-2004, 15:33
Cioč potrei anche creare un metodo separato ?

anx721
31-03-2004, 15:47
Se il problema č quello che ho detto io dovresti creare un nuovo Thread, cioč un oggetto della classe Thread, ridefinendone il metodo run(). Ad esempio puoi fare cosi:



Thread thread = new Thread(){

public void run(){
//qui metti il codice in cui conti il tempo
}
};
thread.start();

lecora_marco
31-03-2004, 18:21
Ho provato la soluzione che mi hai sugg. ma non ho risolto il problema.
Potresti per favore farmi un esempio completo?

anx721
31-03-2004, 18:52
Magari prima posta il tuo codice cosi vedo qual č il problema...

lecora_marco
31-03-2004, 19:03
TIMER = new Thread(){
public void run(){

END_TIME=System.currentTimeMillis();
END_TIME=END_TIME-START_TIME;
String miaStringa = valueOf(END_TIME);
TIME.setText(miaStringa);
}

Nel metodo che implementa il listener per il bottone ho sritto...

TIMER.start();


Se metto un while .... si blocca come prima....

anx721
31-03-2004, 20:08
Il while lo devi mettere all'interno del metodo run del thread

Loading