【发布时间】:2010-04-07 16:12:27
【问题描述】:
我正在使用自定义的 JLayeredPane。 我有几个形状需要在 JLayeredPane 的不同图层上绘制。
为了测试这一点,我创建了一个 JPanel 并询问它的图形。然后我在 JPanel 上绘制一个测试矩形(准备图形),并在 JLayeredPane 的paintComponent 方法中最终绘制所有内容。但这失败了(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)
为什么我不能从我的 JLayeredPane 中绘制这样的 JPanel?我可以从我的paintComponent 方法中直接在我的JLayeredPane 上绘制,但这是在JLayeredPane 的默认面板上。我需要在我的 JLayeredPane 中添加的几个图层上创建和绘制。
我做错了什么? :s
【问题讨论】:
标签: java swing drawing nullpointerexception jlayeredpane