public class myFrame extends Frame {
Graphics g; int x, y, ox, oy; public myFrame(String title) {
super(title);
setSize(200, 200);
g = getGraphics();//这里为什么获得不到
g.setColor(Color.red); addMouseMotionListener(new MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
x = e.getX();
y = e.getY();
g.drawLine(ox, oy, x, y);
ox = x;
oy = y;
}
}); addMouseMotionListener(new MouseMotionAdapter() {
public void mousePressed(MouseEvent e) {
ox = e.getX();
oy = e.getY();
}
});
}
}

解决方案 »

  1.   

    你写的这个Frame在调用g = getGraphics();之前是不可显示的,所以getGraphics()返回null
      

  2.   

    public class myFrame extends Frame {
    Graphics g; int x, y, ox, oy; public myFrame(String title) {
    super(title);
    setSize(200, 200);
                      setVisible(true);//加上这句
    g = getGraphics();
    g.setColor(Color.red); addMouseMotionListener(new MouseMotionAdapter() {
    public void mouseDragged(MouseEvent e) {
    x = e.getX();
    y = e.getY();
    g.drawLine(ox, oy, x, y);
    ox = x;
    oy = y;
    }
    }); addMouseMotionListener(new MouseMotionAdapter() {
    public void mousePressed(MouseEvent e) {
    ox = e.getX();
    oy = e.getY();
    }
    });
    }
    }没有测试,楼主试一下吧^o^
      

  3.   

    貌似你原来的代码实现不了预期的目的,我给你稍微改了一下,楼主看看吧^o^
    package com.ddpie.frame;import java.awt.Color;
    import java.awt.Frame;
    import java.awt.Graphics;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseMotionAdapter;public class myFrame extends Frame {
    Graphics g; int x, y, ox, oy; public myFrame(String title) {
    super(title);
    setSize(200, 200);
    setVisible(true);//加上这句
    g = getGraphics();
    g.setColor(Color.red); addMouseMotionListener(new MouseMotionAdapter() {
    public void mouseDragged(MouseEvent e) {
    x = e.getX();
    y = e.getY();
    g.drawLine(ox, oy, x, y);
    ox = x;
    oy = y;
    }
    }); addMouseListener(new MouseAdapter() {
    public void mousePressed(MouseEvent e) {
    ox = e.getX();
    oy = e.getY();
    }
    });
    }
    }