[Java] Problem mit der Referenz eines Graphics-Objekts

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Yaso, 29. Juli 2007 .

Schlagworte:
  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
     
  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!!
     
  3. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.