Hallo zusammen,
ich habe zwei Klassen. eine einfache Java-Klasse (ZeitThread), in der wird ein Thread erzeugt:
und ein JFrame (Start).
Darin gibt es diese Methode:
Es gibt noch einen Start-Button namens Start, der ruft bei Klick die Methode zeitSetzen aus und übergibt ihr einen String, z.B. zeitSetzen("Start-Button wurde geklickt.") <-- Einfach nur zum testen.
In der Main-Methode dieses JFrames wird der Thread (Klasse ZeitThread) gestartet.
Jetzt wird es für mich komisch...
Starte ich Start sollte ja normalerweise folgendes geschehen:
1. Der Thread wird erzeugt
2. Die Variable zeit1 wird mit der aktuellen Zeit - 1 Std. geladen
3. Die Methode zeitSetzen wird mit der Variablen zeit1 (Aktuelle Uhrzeit- 1 Std. ) beschickt
4. Die Methode zeitSetzen empfängt den Inhalt von zeit1 und speichert in zeit2
Dann gibt sie den Inhalt von zeit2 im Terminal aus.
5. Sie soll bei jLabel1 den Text ändern, und zwar mit dem Inhalt von zeit2.
Bis Punkt 4 klappt alles. Punkt 5 geht nicht. Der Text bleibt unverändert.
Merkwürdig ist:
Wenn ich die Methode zeitSetzen mit dem Startbutton beschicke, dann kann sie den Text von jLabel1 ändern.
Komisch oder?
Hat jemand eine Idee was das sein könnte?
Gruß
Chris
ich habe zwei Klassen. eine einfache Java-Klasse (ZeitThread), in der wird ein Thread erzeugt:
Java:
public class ZeitThread extends Thread implements Runnable {
private String zeit1 = "Warte auf Thread";
@Override
public void run() {
while( true ){
Start start = new Start();
zeit1 = new SimpleDateFormat("HH:mm:ss").format(new Date(System.currentTimeMillis() - 3600 * 1000));
start.zeitSetzen(zeit1);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {e.printStackTrace();}
}
}
}
Darin gibt es diese Methode:
Java:
public void zeitSetzen(String zeit2){
System.out.println("Inhalt von zeit2: " + zeit2);
jLabel1.setText( zeit2 );
}
In der Main-Methode dieses JFrames wird der Thread (Klasse ZeitThread) gestartet.
Jetzt wird es für mich komisch...
Starte ich Start sollte ja normalerweise folgendes geschehen:
1. Der Thread wird erzeugt
2. Die Variable zeit1 wird mit der aktuellen Zeit - 1 Std. geladen
3. Die Methode zeitSetzen wird mit der Variablen zeit1 (Aktuelle Uhrzeit- 1 Std. ) beschickt
4. Die Methode zeitSetzen empfängt den Inhalt von zeit1 und speichert in zeit2
Dann gibt sie den Inhalt von zeit2 im Terminal aus.
5. Sie soll bei jLabel1 den Text ändern, und zwar mit dem Inhalt von zeit2.
Bis Punkt 4 klappt alles. Punkt 5 geht nicht. Der Text bleibt unverändert.
Merkwürdig ist:
Wenn ich die Methode zeitSetzen mit dem Startbutton beschicke, dann kann sie den Text von jLabel1 ändern.
Komisch oder?
Hat jemand eine Idee was das sein könnte?
Gruß
Chris