以下程序运行报空指针异常,在线等正解,请高手赐教,代码如下:
import java.awt.*;public class first_class { static Graphics g = null; public void paint(Graphics page) {
g = page;
try {
page.drawRect(50, 50, 40, 40);
page.drawRect(60, 80, 225, 30);
page.drawOval(75, 65, 20, 20);
page.drawLine(35, 60, 100, 120);
page.drawString("My Note Book... ", 110, 70);
page.drawString("--szk", 130, 100);
} catch (Exception e) {
System.out.println(e);
}
} public static void main(String[] args) {
first_class fc = new first_class();
fc.paint(g);
}}

解决方案 »

  1.   

    程序进入main方法后执行
    first_class fc = new first_class();
    fc.paint(g);
    这时g不还是为nullGraphics是图所对应的,没图哪来的Graphics对象
      

  2.   

    Graphics必须要有Frame或者Applet的支持,而且Graphics是paint方法的参数,不用自己去定义。
    建议楼主看看与java.awt.*有关的部分。对你编写的类,初始化g=null,然后将其传入paint方法,当然会出现空指针的
      

  3.   

    你的程序可改为:import java.awt.*;
    import java.applet.*;public class Demos extends Applet {
      public void paint(Graphics page) {
        page.drawRect(50, 50, 40, 40);
        page.drawRect(60, 80, 225, 30);
        page.drawOval(75, 65, 20, 20);
        page.drawLine(35, 60, 100, 120);
        page.drawString("My Note Book... ", 110, 70);
        page.drawString("--szk", 130, 100);
      }
    }
      

  4.   

    Graphics 对象是指画图的地方,你必须提供
    可以在一个Panel上画,就可以取得对应Panel的Graphics