最近憋大作业,写了一个小程序,想在JPanel里面使用Graphics类,所以有以下代码:
92 Graphics g = panel[1].getGraphics();
93 Graphics2D g2d = (Graphics2D)g;
94 g2d.clearRect(0, 0, getWidth(), getHeight());
95 g2d.setColor(Color.yellow);
96 g2d.fillRect(0, 0, getWidth(), getHeight());
97
98 for(int i=0; i<6; i++){
99 this.add(panel[i]);
100 }
101 }
102
103 public static void main(String args[]){ 104 JFrame.setDefaultLookAndFeelDecorated(true);
105
106 SwingUtilities.invokeLater(new Runnable() {
107 public void run() {
108 JWeiqi_Test2 w = new JWeiqi_Test2();
w.setVisible(true);
}
});
}
}
编译时没有问题,运行时却发生如下异常:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at JWeiqi_Test2.<init>(JWeiqi_Test2.java:94)
at JWeiqi_Test2$1.run(JWeiqi_Test2.java:108)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
恳请大牛们指点一下~~谢谢~~
92 Graphics g = panel[1].getGraphics();
93 Graphics2D g2d = (Graphics2D)g;
94 g2d.clearRect(0, 0, getWidth(), getHeight());
95 g2d.setColor(Color.yellow);
96 g2d.fillRect(0, 0, getWidth(), getHeight());
97
98 for(int i=0; i<6; i++){
99 this.add(panel[i]);
100 }
101 }
102
103 public static void main(String args[]){ 104 JFrame.setDefaultLookAndFeelDecorated(true);
105
106 SwingUtilities.invokeLater(new Runnable() {
107 public void run() {
108 JWeiqi_Test2 w = new JWeiqi_Test2();
w.setVisible(true);
}
});
}
}
编译时没有问题,运行时却发生如下异常:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at JWeiqi_Test2.<init>(JWeiqi_Test2.java:94)
at JWeiqi_Test2$1.run(JWeiqi_Test2.java:108)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
恳请大牛们指点一下~~谢谢~~
打个断点跟一下 看看你getWidth(), getHeight()两个获得的是否是空值null
g2d.clearRect(0, 0, getWidth(), getHeight());
这个代码仔细检查下 把这个 所有的都分析下 试试