Problem mit der Referenz eines Graphics-Objekts

  • Themenstarter Themenstarter Yaso
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
Y

Yaso

Gast
Hallo
ich möchte aus einer Instanz einer Canvas Klasse dass Graphics-Objekt referenzieren und dann damit zeichnen ... dafür habe ich folgenden Code geschrieben:
Code:
import java.awt.*;
import javax.swing.*;

class Bildflaeche extends Canvas
{
    Bildflaeche()
    {
        setBackground(Color.black);
    }
    
    public Dimension getMinimumSize()
    {
        return new Dimension(300,300);
    }
    public Dimension getPreferredSize()
    {
        return getMinimumSize();
    }
}

public class demo extends JFrame{
    
    static Bildflaeche meineBildflaeche;

    
    demo(String fensterTitel)
    {
        super(fensterTitel);
        meineBildflaeche = new Bildflaeche();
        add(meineBildflaeche);
        
        //Hier kommt mein Problem:
        Graphics tmp = meineBildflaeche.getGraphics();
        tmp.drawRect(150, 150, 50, 50);
        meineBildflaeche.repaint();
    }
    public static void main(String[] args)
    {
        demo fenster = new demo("Testfenster");
        fenster.pack();
        fenster.setVisible(true);
        
    }
}

das Problem dabei ist das er anscheinend hier eine null-referenz erzeugt:
Code:
   //Hier kommt mein Problem:
        Graphics tmp = meineBildflaeche.getGraphics();
        tmp.drawRect(150, 150, 50, 50);
        meineBildflaeche.repaint();

ich erhalte folgende Exceptions :
Exception in thread "main" java.lang.NullPointerException
at demo.<init>(demo.java:34)
at demo.main(demo.java:39)


wäre toll wenn mir jemand sagen könnte was da nicht stimmt. Achja mir geht es um die Referenz , dass ich in der paint-methode von meiner Canvasklasse Zeichnen kann weiß ich selber ;-) .

mfG

Yaso
 
Yaso hat gesagt.:
Achja mir geht es um die Referenz , dass ich in der paint-methode von meiner Canvasklasse Zeichnen kann weiß ich selber ;-) .

Dann mach das doch auch!


getGraphics() zu benutzen ist böse :noe:

Das braucht man (wenn überhaupt) nur in ganz speziellen Fällen.
 
Ich versuche ein Snakespiel zu Coden und dabei ist es mir zu schwer alles über einepaintmethode auszugeben ... weil ja die Schlange usw. Instanzen von Klassen sind ...
 
wo sollte ich dann die Klassen dann definieren ?

in der paint methode haben sie ja eingeschränkte sichtbarkeit und wo anders können sie ja nicht auf das Graophics-Objekt zugreifen....
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben