# paint und repaint ?!?



## Hawk2005 (6. Jul 2004)

Hallo ich bin neu in Java und hab bisher eigentlich nur C/C++ gemacht.

Ich wollte jetzt mal nen kleines Programm in Java schreiben, aber funktioniert erst mal garnix.


```
import java.awt.*;
import java.applet.*;

public class test extends java.applet.Applet {

    int status = 1;
    
    public void init() {
        for (int i = 0;i <= 100 ; i++) {
            status = i;
            repaint();
        }
    }
    
    public void paint(Graphics g) {
        g.setColor(Color.black);
        g.drawRect(9,9,101,11);
        g.fillRect(10, 10, status,10);
        g.setColor(Color.black);
    }
}
```

Soll eine Art Statusbalken zeichnen. Leider wird aber die Funktion paint() erst aufgerufen, wenn init() abgearbeitet ist.
Das Applet soll mal eine Funktion aus einer anderen Klasse in der for-Schleife abarbeiten und immer wenn die funktion
abgearbeitet wurde, soll der Blaken neu gezeichnet werden.  Und nicht erst wenn die Schleife fertig ist.

Wie geht das ?!?

cu...


----------



## Beni (6. Jul 2004)

Du benötigst Multithreading um das zu erreichen.

Dann würde dein Progi ungefähr so aussehen:


```
public class test extends java.applet.Applet {

    int status = 1;
   
    public void init() {
        new Thread(){
           public void run(){
              for (int i = 0;i <= 100 ; i++) {
                 status = i;
                 repaint();
                 try{
                   Thread.sleep( 100 );
                 }
                 catch( InterruptedException ex ){}
              }
           }
        }.start();
    }
   
    public void paint(Graphics g) {
        g.setColor(Color.black);
        g.drawRect(9,9,101,11);
        g.fillRect(10, 10, status,10);
        g.setColor(Color.black);
    }
}
```

siehe auch


----------



## Guest (7. Jul 2004)

Danke das hat geholfen...


----------

