PDA

Visualizza la versione completa : [java] ora


Damma&Manu
07-01-2003, 13:08
CIAO A TUTTI.

Devo creare un thread che visualizzi l'ora corrente in una barra del frame del mio programma.
Qualcuno pu darmi una mano?? grazie

:sexpulp:

floyd
07-01-2003, 14:20
class Ora extends Thread {
Calendar c;
public void run() {
c = Calendar.getInstance();
String s = c.get(Calendar.HOUR) + ":" + c.get(Calendar.MINUTE) + ":" + c.get(Calendar.SECOND);
// aggiorna testo
try {
this.sleep(1000);
}
catch (InterruptedException iex) {}
}
}

tanto per cominciare
vedi se ti sembra accettabile

Damma&Manu
07-01-2003, 14:40
Va benissimo!!!
Una cosa sola... Lo esegue una sola volta.
Mi spiego, dovrebbe ogni secondo visualizzare il tempo che passa.
Devo fare un loop o c' una funzione???

blinkago
07-01-2003, 14:54
Devi loopare..

Marco_Frigerio
07-01-2003, 15:08
public class Ora extends Thread{
private static Principale principale = Principale.ritornoOggetto();
private static int ora;
private static int minuti;
private java.lang.String giorno;
private java.lang.String mese;
private java.lang.String anno;
private static int secondi;

public Ora() {
super();
}

public Ora(Runnable target) {
super(target);
}

public Ora(Runnable target, String name) {
super(target, name);
}

public Ora(String name) {
super(name);
}

public Ora(ThreadGroup group, Runnable target) {
super(group, target);
}

public Ora(ThreadGroup group, Runnable target, String name) {
super(group, target, name);
}

public Ora(ThreadGroup group, String name) {
super(group, name);
}

public static void main(java.lang.String[] args) {
// Inserire qui la codifica per avviare l'applicazione.
}

public void run() {
java.util.TimeZone t=java.util.TimeZone.getTimeZone("ECT");
java.util.Calendar oggi = java.util.Calendar.getInstance(t);
giorno="" + oggi.get(oggi.DAY_OF_MONTH);
mese="" +(oggi.get(oggi.MONTH)+1);
anno="" + oggi.get(oggi.YEAR);
int i = 1;
while (i==1){
java.util.Calendar c = java.util.Calendar.getInstance();
String s = c.get(java.util.Calendar.HOUR) + ":" + c.get(java.util.Calendar.MINUTE) + ":" + c.get(java.util.Calendar.SECOND);
i++;
principale.setData(giorno+"/"+mese+"/"+anno,s);
try {
this.sleep(1000);
}
catch (InterruptedException iex) {}
}

}

Ciao sono il collega di Damma&Manu...

il codice del thread questo, ma esegue il run() una sola volta!!

io richiamo il thread nella classe Principale in questo modo:

Ora ora = new Ora();
Thread t = new Thread(ora);
t.start();

Damma&Manu
07-01-2003, 15:35
:quote: :quote: :quote: :quote: :quote:


Qualcuno sa dirmi come fare a risolvere il problema di Marco_Frigerio???

Grazie

floyd
07-01-2003, 15:52
Ora ora = new Ora();
ora.start();
prova in questo modo

Marco_Frigerio
07-01-2003, 16:25
provato anche con

ora.start();

ma il metodo run() viene eseguito una sola volta!!!

Damma&Manu
07-01-2003, 16:26
NN va! Lo fa una sola volta... :bh:

floyd
07-01-2003, 16:31
strano
prova a mettere un System.out.println("qualcosa") nel ciclo e vedi se lo stampa una o piu' volte

Loading