日期:2014-05-20  浏览次数:20688 次

getGraphics的NullPointerException
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);
}