.getWidth() liefert 0!

Status
Nicht offen für weitere Antworten.
G

gateway_2_hell

Gast
Hallo!

Kann mir wer sagen, warum mir die Größe meines Applets mit "0" angegeben wird? Ist bestimmt nen total doofer Fehler :roll:


Code:
import java.applet.*;
import java.awt.*;

public class Pong extends Applet implements Runnable
{
    // Initialisierung der Variablen
    int x_pos = 0;     // x - Position des Balles
    int y_pos = 0;    // y - Position des Balles
    int radius = 20;    // Radius des Balles
    int dx = 1;
    int dy = 1;
    
    int Höhe = this.getHeight();   //Höhe des Applets
    int Breite = this.getWidth();    //Breite des Applets

    // Variablen für die Doppelpufferung
    private Image dbImage;
    private Graphics dbg;

    public void init()
    {
        setBackground (Color.black);
    }

    public void start ()
    {
        // Schaffen eines neuen Threads, in dem das Spiel läuft
        Thread th = new Thread (this);
        // Starten des Threads
        th.start ();
    }

    public void stop()
    {

    }

    public void destroy()
    {

    }

    public void run ()
    {
        // Erniedrigen der ThreadPriority um zeichnen zu erleichtern
        Thread.currentThread().setPriority(Thread.MIN_PRIORITY);

        // Solange true ist läuft der Thread weiter
        while (true)
        {
            // Verändern der x- Koordinate
            x_pos += dx;
            // Verändern der x- Koordinate
            //y_pos += dy;
            
            if(x_pos > Breite)
            {
            dx = -1;
            }
            
            // Neuzeichnen des Applets
            repaint();

            try
            {
                Thread.sleep (20);
            }
            catch (InterruptedException ex)
            {
            }

            // Zurücksetzen der ThreadPriority auf Maximalwert
            Thread.currentThread().setPriority(Thread.MAX_PRIORITY);
        }
    }

    /** Update - Methode, Realisierung der Doppelpufferung zur Reduzierung des Bildschirmflackerns */
    public void update (Graphics g)
    {
        // Initialisierung des DoubleBuffers
        if (dbImage == null)
        {
            dbImage = createImage (this.getSize().width, this.getSize().height);
            dbg = dbImage.getGraphics ();
        }

        // Bildschirm im Hintergrund löschen
        dbg.setColor (getBackground ());
        dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);

        // Auf gelöschten Hintergrund Vordergrund zeichnen
        dbg.setColor (getForeground());
        paint (dbg);

        // Nun fertig gezeichnetes Bild Offscreen auf dem richtigen Bildschirm anzeigen
        g.drawImage (dbImage, 0, 0, this);
    }

    public void paint (Graphics g)
    {
        g.setColor  (Color.blue);
        g.fillOval (x_pos, y_pos, 2 * radius, 2 * radius);
    }
}
 

André Uhres

Top Contributor
Code:
   public void init() {
        setSize(200,100);
        Höhe = getHeight();   //Höhe des Applets
        Breite = getWidth();    //Breite des Applets
        setBackground(Color.black);
    }
 
B

Beni

Gast
Das Applet wird zuerst erstellt, erst dann setzt der Browser die Grösse... Ruf die Breite/Höhe erst dort ab, wo du sie wirklich brauchst.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben