public class Main extends JFrame{
//Graphics g=getGraphics(); //将getGraphics()放在这里编译时会出现Exception in thread "main " java.lang.NullPointerException
public Main(){
setSize(500, 500);
setVisible(rootPaneCheckingEnabled);
}
public static void main(String[] args) {
new Main().paint();
}
public void paint(){
//Graphics g=getGraphics(); //将getGraphics()放在这里编译可以通过。
g.drawLine(20, 20,400, 400);
}
}
请问为什么?
------解决方案--------------------
因为JFrame 还没显示出来
其自身的graphics 还未初时
ls上的代码也是错的
------解决方案--------------------
抱歉,不严谨了,谢谢楼上提醒,改成:
public Main(){
super();
setSize(500, 500);
setVisible(rootPaneCheckingEnabled);
g=getGraphics();//这句要放在setVisible之后。
g.drawLine(20, 20,400, 400);
}