我写了一个程序是用来测试MouseListener中的方法的使用.但是编译时出现错误以下是我的代码.请高手指点.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.event.MouseEvent.*;
public class Mouseevent extends Frame implements MouseListener
{
      JFrame frame=new JFrame("MouseEvnet窗口");
      JLabel label=new JLabel("获得鼠标坐标");
       JPanel panel=new JPanel();    public Mouseevent()
{
    Container cp=frame.getContentPane();
    frame.setBounds(200,200,300,400);
    frame.setVisible(true);
    cp.add(panel,BorderLayout.CENTER);
    cp.add(label,BorderLayout.SOUTH);
    cp.addMouseListener(this);
}
public static void main(String[] args)
  {
          Mouseevent diao=new Mouseevent();
   }
   
  public void MouseClicked(MouseEvent e)
{label.setText("鼠标单击坐标为("+e.getX()+","+e.getY()+")");
 int red=(int)(Math.random()*256);
 int green=(int)(e.getX()/2);
 int blue=(int)(e.getY()/2);
frame.setBackground(new Color(red,green,blue));
}
public void MouseReleased(MouseEvent e)
{label.setText("鼠标在坐标("+e.getX()+","+e.getY()+")处释放");}
public void MousePressed(MouseEvent e)
{label.setText("鼠标在坐标("+e.getX()+","+e.getY()+")处按下");}
public void MouseCentered(MouseEvent e)
{label.setText("鼠标进入窗口");
  label.setForeground(Color.GREEN);
}
public void MouseExited(MouseEvent e)
{label.setText("鼠标离开窗口");
 label.setForeground(Color.RED);
}
}编译的时时候出现
Mouseevent.java:5:Mouseevent 不是抽象的,并且未覆盖java.awt.event.MouseListener中的抽象方法mouseExited(java.awt.event.MouseEvent)
public class Mouseevent extends Frame implements MouseListener
1  错误
请问这是怎么回事,我是初学者,什么是没有覆盖java.awt.event.MouseListener中的抽象方法.这又是什么意思,那怎样才能覆盖MuseListener中的抽像方法呢.
  

解决方案 »

  1.   

    實現了MouseListener的接口  就要實現它所有的方法~~  名字要一樣~
      

  2.   

    如果不想這么麻煩覆蓋所有的方法  你可以使用mouseAdapter   想用什么方法就覆蓋什么方法就行了
      

  3.   

    你要在Mouseevent实现一个mouseExited(java.awt.event.MouseEvent),如果把接口中的抽象方法实现完,一个类是不能被实例化的。
    如果你在mouseExited()没有特别要处理的,你可以加入下面的代码到Mouseevent类即可:public void mousePressed(MouseEvent e){
        super.mousePressed(e);
    }
      

  4.   

    mouseAdapter是什么类,可以干什么,
    为什么每个人回答的问题都是那么的深澳,不知道我是个初学者吗,只是讲出一段代码,我又看不明白,
    干脆直接对我说上面的程序应该怎么不修改,这样修改有什么意思,为什么这样修改,这样我的问题也解决了,也明白了道理,
    这样不直接些吗,说我那么一大堆话,虽然说那是正解的,但对于我一个初学者来说,能看的懂吗.
      

  5.   

    加入下面的代码到Mouseevent类:
    public void mousePressed(MouseEvent e){ 
        super.mousePressed(e); 
      

  6.   


    现在你的这个类不是抽象的,所以要实现接口MouseListener 的所有方法,如果你只是想实现一部分,那么请参照2L的回答去做。public class MouseeventBase extends Frame public class MouseeventBase extends mouseAdapter..
    //没有多继承
      

  7.   

    你要实现 MouseListener 这个接口..必须 实现里面所有的方法..void mouseClicked(MouseEvent e) 
              鼠标按键在组件上单击(按下并释放)时调用。 
     void mouseEntered(MouseEvent e) 
              鼠标进入到组件上时调用。 
     void mouseExited(MouseEvent e) 
              鼠标离开组件时调用。 
     void mousePressed(MouseEvent e) 
              鼠标按键在组件上按下时调用。 
     void mouseReleased(MouseEvent e) 
              鼠标按钮在组件上释放时调用。 
    你的类里面必须有这5个方法..而且必须把所有的实现  都写出来.即使是空实现. 全部都 实现了就不会报错了.
      

  8.   

    我的你应该能看懂了吧..在你的 Mouseevent 类里面加上这几个方法就好了..
    大小写不一致也不算实现哦/./   要注意..
      

  9.   

    看不懂就回去慢慢看。自己没装开发工具?不会自动实现接口方法?对于我来说,导入java文件,排版+实现所有未实现方法,只要1分钟。可我看不到有告诉你怎么搞的理由和必要。
      

  10.   

    好了谢谢cypd007 11楼的总是总算是解了,好了,以后我就跟你混了,
    对了,还要谢谢大家的参与,没有大家的意见,问题不会那么快就解决的,谢谢了.祝朋友们十一国庆节快乐,
      

  11.   

    接口的使用就要实现其所有方法,而方法可以是空函数~~~~
    鼠标接口有两种,一种是mouselistener,另一种是mousemotionlistener。
    mouselistener有5个方法,mouseadapter包含其中的2种,,,,还有mousemotionlistener有2种方法。
    其实你还要自己看,,,,
    我学java才一个月,我都觉得你的问题很简单,你最好用eclipse,或者是更简单的jreator编译器,,,,,
    你应该多看看书,书上很详细的
    介绍你一本书,java核心技术卷1:基础知识(第8版)
    是机械工业出版社的
    中文版是98块钱,真的很好,,,,,外国人写的书,不错,很典型~~~~~~
    加油~~~~~你会成功的!!!!
      

  12.   

    注意大小写
    java接口首字母小写
    看来你原来是做C++或者C#的