我写了一个程序是用来测试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中的抽像方法呢.
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中的抽像方法呢.
如果你在mouseExited()没有特别要处理的,你可以加入下面的代码到Mouseevent类即可:public void mousePressed(MouseEvent e){
super.mousePressed(e);
}
为什么每个人回答的问题都是那么的深澳,不知道我是个初学者吗,只是讲出一段代码,我又看不明白,
干脆直接对我说上面的程序应该怎么不修改,这样修改有什么意思,为什么这样修改,这样我的问题也解决了,也明白了道理,
这样不直接些吗,说我那么一大堆话,虽然说那是正解的,但对于我一个初学者来说,能看的懂吗.
public void mousePressed(MouseEvent e){
super.mousePressed(e);
}
现在你的这个类不是抽象的,所以要实现接口MouseListener 的所有方法,如果你只是想实现一部分,那么请参照2L的回答去做。public class MouseeventBase extends Frame public class MouseeventBase extends mouseAdapter..
//没有多继承
鼠标按键在组件上单击(按下并释放)时调用。
void mouseEntered(MouseEvent e)
鼠标进入到组件上时调用。
void mouseExited(MouseEvent e)
鼠标离开组件时调用。
void mousePressed(MouseEvent e)
鼠标按键在组件上按下时调用。
void mouseReleased(MouseEvent e)
鼠标按钮在组件上释放时调用。
你的类里面必须有这5个方法..而且必须把所有的实现 都写出来.即使是空实现. 全部都 实现了就不会报错了.
大小写不一致也不算实现哦/./ 要注意..
对了,还要谢谢大家的参与,没有大家的意见,问题不会那么快就解决的,谢谢了.祝朋友们十一国庆节快乐,
鼠标接口有两种,一种是mouselistener,另一种是mousemotionlistener。
mouselistener有5个方法,mouseadapter包含其中的2种,,,,还有mousemotionlistener有2种方法。
其实你还要自己看,,,,
我学java才一个月,我都觉得你的问题很简单,你最好用eclipse,或者是更简单的jreator编译器,,,,,
你应该多看看书,书上很详细的
介绍你一本书,java核心技术卷1:基础知识(第8版)
是机械工业出版社的
中文版是98块钱,真的很好,,,,,外国人写的书,不错,很典型~~~~~~
加油~~~~~你会成功的!!!!
java接口首字母小写
看来你原来是做C++或者C#的