Repaint und Thread
-
Hallo,
ich habe ein Programm, dass macht nichts anderes als Werte ausrechnen und dann repaint aufzurufen um sie darzustellen. Das ganze hbe ich in eine Schleife gepackt . Dummerweise blockiert repaint nicht, so dass mehrmals neue Werte berechnet werden, während repaint immer noch beim Zeichnen ist und deshalbkomische Sachen rauskommen
Gibt es da irgendeine Lösung um das repaint abzuwarten?
Nebenbei kann ich einen Thread auch nur per start() starten, aber nicht mit interrupt() unterbrechen (die Schleife steht auf !isInterrupted()), was mich auch etwas unglücklich macht... das ganze sieht ungefähr so aus:public class MainClass(){ JFrame MainFrame; SPPanel MainPanel; //.. //irgendwo Thread XYThread = new Thread(new SPThread()); //woanders XYThread.start() //geht //ganz woanders XYThread.interrupt() //geht nicht //... public class SPThread implements Runnable { public void run() { while (!isInterrupted()) { calcSomething(); MainFrame.repaint(); } } } public class SPPanel extends JPanel { protected synchronized void paintComponent(Graphics g) { //Daten abfragen und zeichnen } } }
EDIT: Ich benutze Java 1.4.2
EDIT2: Ich habe den Code noch um die Paint Component ergänzt
-
Ich habs jetzt mit einem schnellen Swing-Timer und einem simplem boolean Flag selbst gelöst