kuhlmaehn
Erfahrenes Mitglied
Hallo,
ich bin gerade etwas verwirrt und finde die Lösung für mein Problem nicht (obwohl soetwas häufiger vorzukommen scheint).
Ich habe mir eine ganz einfache GUI mit zwei Buttons und einem Label gebastelt. Der eine Button soll einen Countup starten der andere ihn pausieren.
Im Konstruktor der GUI wird hierfür eine Klasse "counter" gestartet, die Thread erweitert. Die GUI wird dieser Klasse mit übergeben und counter setzt dann über eine Methode changeText den Text des Labels in der GUI.
Ich hänge nun mal den Code an, da dieser glaube ich alles erklärt.
Steht gui.repaint() direkt in der while(true) Schleife funktioniert übrigens alles wie es soll. Das kommt mir allerdings falsch vor es jedes mal aufzurufen.
Gibt es vielleicht auch eine elegantere Lösung dafür den Text in einem Label hochzählen zu lassen?
Danke!
ich bin gerade etwas verwirrt und finde die Lösung für mein Problem nicht (obwohl soetwas häufiger vorzukommen scheint).
Ich habe mir eine ganz einfache GUI mit zwei Buttons und einem Label gebastelt. Der eine Button soll einen Countup starten der andere ihn pausieren.
Im Konstruktor der GUI wird hierfür eine Klasse "counter" gestartet, die Thread erweitert. Die GUI wird dieser Klasse mit übergeben und counter setzt dann über eine Methode changeText den Text des Labels in der GUI.
Ich hänge nun mal den Code an, da dieser glaube ich alles erklärt.
Code:
public class counter extends Thread {
private testGUI gui;
private int count;
private boolean doit;
counter(testGUI gui) {
this.gui = gui;
count = 0;
doit = false;
}
public void run() {
while(true) {
if(doit) {
count++;
gui.changeText(Integer.toString(count));
//gui.repaint(); BEWIRKT NICHTS
try {
sleep(1000);
}
catch(Exception e) {
System.out.println(e);
}
}
}
}
public void doCount(boolean b) {
this.doit = b;
}
}
Gibt es vielleicht auch eine elegantere Lösung dafür den Text in einem Label hochzählen zu lassen?
Danke!