我写了个鼠标画图的程序,能通过编译,但运行出错,不知是什么原因,希望高手指点!兄弟我先谢了!
代码如下:import java.awt.Frame;
import java.awt.Button;
import java.awt.BorderLayout;
import java.awt.Color;
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Container;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.awt.event.WindowAdapter;
public class FrameTest  //implements MouseListener
{
 static int xPoit;
 static int yPoit;
 
public static void main(String[] args)
{

Frame f=new Frame("实例窗口");
f.setSize(600,400);
f.setLocation(100,100);
f.setVisible(true);
f.addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent emp)
{
xPoit=emp.getX();
yPoit=emp.getY();
System.out.println("按下");
}

 public void mouseReleased(MouseEvent e)
 {
  Container app=new Container();
  Graphics g=app.getGraphics();
  System.out.println("拖动显示1");  
  g.drawOval(xPoit,yPoit,e.getX()-xPoit,e.getY()-yPoit);
          System.out.println("拖动显示2");       
 }
});

f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}

});

}}

解决方案 »

  1.   

    import java.awt.Frame;
    import java.awt.Graphics;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowAdapter;public class FrameTest extends Frame// implements MouseListener
    {
        static int xPoit;    static int yPoit;    static Graphics g;    public FrameTest() { Frame f = new Frame("实例窗口");
    f.setSize(600, 400);
    f.setLocation(100, 100);
    f.setVisible(true); g = f.getGraphics(); MouseAdapter1 adapter = new MouseAdapter1();
    f.addMouseListener(adapter);
        }    public static void main(String[] args) { new FrameTest();    }    class MouseAdapter1 extends MouseAdapter {
    public void mousePressed(MouseEvent emp) {
        xPoit = emp.getX();
        yPoit = emp.getY();
        System.out.println("按下");
    } public void mouseReleased(MouseEvent e) {
        System.out.println("拖动显示1");
        g.drawOval(xPoit, yPoit, e.getX() - xPoit, e.getY() - yPoit);
        System.out.println("拖动显示2");
    }
        }}
      

  2.   

    我测试了一下,错误发生在
    g.drawOval(xPoit, yPoit, e.getX() - xPoit, e.getY() - yPoit); 这句,
    真搞不明白,这句怎么错了呢?这个方法中的各个参数都有值的,可以输出来啊,不好意思啊,本人刚学习,让大家见笑!
    下面的那句没有执行。
      

  3.   

    错误找到了!谢了,各位,
    Graphics 引用不对,import java.awt.Frame;
    import java.awt.Button;
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.applet.Applet;
    import java.awt.Graphics;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;
    import java.awt.event.WindowAdapter;public class FrameTest  //implements MouseListener
    {
     static int xPoit;
     static int yPoit;
     static Graphics gh;
    public static void main(String[] args)
    {

    Frame f=new Frame("实例窗口");
    f.setSize(600,400);
    f.setLocation(100,100);
    f.setVisible(true);
    gh=f.getGraphics();
    f.addMouseListener(new MouseAdapter()
    {
    public void mousePressed(MouseEvent emp)
    {
    xPoit=emp.getX();
    yPoit=emp.getY();
    System.out.println("按下");
    }

     public void mouseReleased(MouseEvent e)
     {
     
      System.out.println("拖动显示1");  
      gh.drawOval(xPoit,yPoit,e.getX()-xPoit,e.getY()-yPoit);
              System.out.println("拖动显示2");       
     }
    });

    f.addWindowListener(new WindowAdapter()
    {
    public void windowClosing(WindowEvent e)
    {
    System.exit(0);
    }

    });

    }}
      

  4.   

    Graphics 引用不对, import java.awt.Frame; 
    import java.awt.Button; 
    import java.awt.BorderLayout; 
    import java.awt.Color; 
    import java.applet.Applet; 
    import java.awt.Graphics; 
    import java.awt.event.MouseAdapter; 
    import java.awt.event.MouseEvent; 
    import java.awt.event.WindowEvent; 
    import java.awt.event.WindowListener; 
    import java.awt.event.WindowAdapter; public class FrameTest  //implements MouseListener 

    static int xPoit; 
    static int yPoit; 
    static Graphics gh; 
    public static void main(String[] args) 
    { Frame f=new Frame("实例窗口"); 
    f.setSize(600,400); 
    f.setLocation(100,100); 
    f.setVisible(true); 
    gh=f.getGraphics(); 
    f.addMouseListener(new MouseAdapter() 

    public void mousePressed(MouseEvent emp) 

    xPoit=emp.getX(); 
    yPoit=emp.getY(); 
    System.out.println("按下"); 
    } public void mouseReleased(MouseEvent e) 
    { System.out.println("拖动显示1");  
    gh.drawOval(xPoit,yPoit,e.getX()-xPoit,e.getY()-yPoit); 
              System.out.println("拖动显示2");      

    }); f.addWindowListener(new WindowAdapter() 

    public void windowClosing(WindowEvent e) 

    System.exit(0); 
    } }); } }