paint und repaint ?!?

Status
Nicht offen für weitere Antworten.

Hawk2005

Mitglied
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.

Code:
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...
 
B

Beni

Gast
Du benötigst Multithreading um das zu erreichen.

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

Code:
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
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben