回 帖 发 新 帖 刷新版面

主题:MouseListener用错了?

各位这个程序在我这里怎么说没有覆盖另一个方法呀?我这个可是用了适配器的呀!还有我的那个Graphics g用的对吗?能画出圆来吗?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class RandomClick extends JApplet implements MouseListener
{Color c;Graphics g;
 public void init()
 {addMouseListener(new MouseAdapter()
  {public void mouseTyped(MouseEvent e)
   {int x=e.getX();int y=e.getY();
    c=new Color((int)(Math.random()*256),(int)(Math.random()*256),(int)(Math.random()*256));
    g.setColor(c);
    g.fillOval(x-10,y-10,10,10);
   }
  });
 }
}

回复列表 (共2个回复)

沙发

mouseListener再jdk里是这样定义的:
pubilc  interface mouselistener extends EventListener{
public void mouseClicked(MouseListener  e){;;;;;;}
......
}他是个接口,

而mouseAdapter是实现了mouseListener接口的类
再jdk里定义为:
public class mouseAdapter implements mouseListener{............}
他实现了mouseListener的所有方法,,
你既然要实现该接口,你你也该实现他的所有方法,,,
由于你没实现,所以就报错了。。。。。。。。。


而安你程序的意思,你不必实现该接口。,以为有mouseAdapter类帮你实现了,你只要要用的时候new 一个mouseListener()就可以了,把他写为内部的匿名类,覆盖你想要的方法就ok了(其实你已经这样做了呵呵)。
仅供参考:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class RandomClick extends JApplet{Color c;Graphics g;
 public void init()
 {addMouseListener(new MouseAdapter()
  {public void mouseTyped(MouseEvent e)
   {int x=e.getX();int y=e.getY();
    c=new Color((int)(Math.random()*256),(int)(Math.random()*256),(int)(Math.random()*256));
    g.setColor(c);
    g.fillOval(x-10,y-10,10,10);
   }
  });
 }
}

板凳

非常感谢你的回答,但是我有最后一个问题,就是点击鼠标不能画出圆来,我的Graphics g用得对吗?

我来回复

您尚未登录,请登录后再回复。点此登录或注册