Hallo Leute,
Ich habe eine Klasse geschrieben um in meinem Frame ein Label für eine bestimmte zeit zu ändern. Das komische, was mich verwirrt ist, dass wenn ich die "run()" - Methode im Constructor aufrufe (nach setContentPanel(*JPanel*)) funktioniert sie einwandfrei. Aber wenn ich versuche aus einer anderen Methode das Gleiche versuche, dann ändert sich der Text des Labels nicht.
Wieso funktioniert das nicht aus einer anderen Methode heraus nicht?
Ich habe eine Klasse geschrieben um in meinem Frame ein Label für eine bestimmte zeit zu ändern. Das komische, was mich verwirrt ist, dass wenn ich die "run()" - Methode im Constructor aufrufe (nach setContentPanel(*JPanel*)) funktioniert sie einwandfrei. Aber wenn ich versuche aus einer anderen Methode das Gleiche versuche, dann ändert sich der Text des Labels nicht.
Java:
public ShowText(String text, int secs, JLabel label) {
this.text = text;
this.secs = secs;
this.label = label;
running = true;
}
@Override
public void run() {
running = true;
label.setText(text);
try {
Thread.sleep(1000 * secs);
} catch (InterruptedException e) {
e.printStackTrace();
}
running = false;
}
Wieso funktioniert das nicht aus einer anderen Methode heraus nicht?