#1 29. Juli 2007 Problem mit der Referenz eines Graphics-Objekts 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 : Code: 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 + Multi-Zitat Zitieren
#2 29. Juli 2007 AW: Problem mit der Referenz eines Graphics-Objekts hi, du müsstest einfach die methode paint in der klasse Canvas überschreiben. also so: Code: import java.awt.*; import javax.swing.*; class Bildflaeche extends Canvas { Bildflaeche() { super(); setBackground(Color.black); } public Dimension getMinimumSize() { return new Dimension(300,300); } public Dimension getPreferredSize() { return getMinimumSize(); } public void paint(Graphics g) { super.paint(g); g.drawRect(150, 150, 50, 50); } } public class demo extends JFrame{ static Bildflaeche meineBildflaeche; demo(String fensterTitel) { super(fensterTitel); meineBildflaeche = new Bildflaeche(); add(meineBildflaeche); } public static void main(String[] args) { demo fenster = new demo("Testfenster"); fenster.pack(); fenster.setVisible(true); } } hoffe es geht. untested!!! nice day!! + Multi-Zitat Zitieren