how to repaint() in a schleife?

  • Themenstarter baumstängleschäler
  • Beginndatum
Status
Nicht offen für weitere Antworten.
B

baumstängleschäler

Gast
okay, erst der code:
Code:
               int x=xmenueicon2-xmenueicon1;
               int y=ymenueicon2-ymenueicon1;
               for(int i=0;i<10;i++){
                   xmenueicon1+=x/10;
                   ymenueicon1+=y/10;
                   try{Thread.sleep(100);}catch(Exception ex){}
                   repaint();
               }


Anstatt das das applett alle 0,1 sekunden das bild mit einer anderen position zeichnet, wird erst beim letzten durchgang (nach einer sekunde) der schleife das bild aktualisiert.
Ausnahme: Wenn ich JOptionPane.showMessageDialog(null,"irgendwas"); einbaue, dann wird jeder einzelne schritt gezeichnet.
 
B

Beni

Gast
Mit "Thread.sleep" blockierst du wahrscheinlich den AWT-Thread (der auch zeichnen würde...).

Mach doch einen zusätzlichen Thread, der das repaint aufruft:

Code:
new Thread(){
  public void run(){
    while( ... )
      repaint();
  }
}.start();
 
B

baumstängelsschäler

Gast
thx,
war eine "perfekte" Lösung. Kürzer als gedacht und schön übersichtlich.

Nochmals danke :D
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben