Java Swing NullPointerException when drawing

Posted by juFo on Stack Overflow See other posts from Stack Overflow or by juFo
Published on 2010-04-07T16:12:27Z Indexed on 2010/04/07 17:13 UTC
Read the original article Hit count: 377

I'm using a custom JLayeredPane. I have several Shapes which needed to be drawn on different layers in the JLayeredPane.

To test this I create a JPanel and ask its graphics. Then I draw a test rectangle on that JPanel (preparing the graphics) and in my paintComponent method from the JLayeredPane I finally draw everything. But this fails (NullPointerException).

public class MyCustomPanel extends JLayeredPane {

// test
JPanel testpane;
Graphics g2;
// test

// constructor
public MyCustomPanel() {
    testpane = new JPanel();
    this.add(testpane, new Integer(14));
    g2 = testpane.getGraphics();
}

@Override
public void paintComponent(Graphics g) {
    super.paintComponent(g);

    g2.drawRect(10, 10, 300, 300);
}

}

// run:
//Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
//        at view.MyCustomPanel.paintComponent(MyCustomPanel.java:65)

Why can't I draw on such a JPanel from within my JLayeredPane? I can draw directly on my JLayeredPane from within my paintComponent method but that's on the default Panel from the JLayeredPane. I need to create and draw on several layers which are added in my JLayeredPane.

What am I doing wrong? :s

© Stack Overflow or respective owner

Related posts about jlayeredpane

Related posts about drawing