的确g没有被初始化。
应该这样:Graphics g=new Graphics();

解决方案 »

  1.   


    java要求把变量都初始化
      

  2.   

    对象在没有初始之前是不能够使用的!
    Graphics g;//这样只会产生一个reference,并没有产生实际的对象
    g.drawRect(....);//没有产生对象就调用对象的方法,肯定会出错的。Graphics 是个抽象类,不能实例化的。给你个例子你看看吧:
    import java.awt.*;
    import java.awt.event.*;class Temp extends Frame {
        public void paint(Graphics g) {
            super.paint(g);
            g.drawString("Hello ",50, 80);
        }    public static void main(String[] args) {
            Temp f = new Temp();        f.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e){
                    System.exit(0);
                }
            });
            f.setBounds(100, 100, 200, 150);
            f.show();
        }
    }
      

  3.   

    Graphics g;//g=null
    g.drawRect(15, 10, 275, 90);//null怎么draw
      

  4.   

    我Graphics g = new Graphics()但是编译的时候说错误,错误代码:java.awt.Graphics是虚函数,不能被对象初始化
      

  5.   

    Graphics是指你绘图的一个抽象的绘图环境,这个绘图环境是由某种容器(如canvas),或者组件(component)提供的。
     yuanmeng163(今天我有空) 提供了一个简单易懂的代码,你可以参考。
      

  6.   

    wjohen(孤帆) 我试了你的程序,结果是不能被实例化,而不是初始化Test.java:6: java.awt.Graphics is abstract; cannot be instantiated yuanmeng163(今天我有空)是一种使用方式,还有就是 public void paint(Graphics g) {
            Graphics2D g2 = (Graphics2D) g;
            g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
            Dimension d = getSize();
            int gridWidth = d.width / 6;
            int gridHeight = d.height / 2;
    省略其他,如需要可以给你一个完整的代码,自己研究一下!
      

  7.   

    Graphics只有在图形对象中使用,如JFrame, Frame,Dialog等等.你要显示图形的话,就需要用上面提及的这些类,这样在paint(...)中,Graphics就自动给你了,不需要初始化.
      

  8.   

    你如果非要使用Graphics类的话,要自己写一个类来继承这个抽象类,否则是不能初始化的。那样的话,你就要实现这个抽象类中声明的所有抽象函数。