java - 无法理解和解决此程序的方法覆盖错误

标签 java swing event-handling awt

import java.awt.*;
import java.awt.event.*;
import javax.swing.*; 
public class test extends JFrame implements MouseListener
{
JFrame f;
JPanel p;
JButton b;
test()
{
    f=new JFrame("My Frame");
    p=new JPanel();
    f.add(p);
    b=new JButton("Button");
    p.add(b);
    f.setSize(100,100);
    f.setVisible(true);
    b.addMouseListener(new MouseListener()
    {
        public void mouseClicked(MouseEvent ae)
        {
            System.out.print("mouse clicked");
        }
    });
    b.addMouseListener(new MouseListener()
    {
        public void mouseEntered(MouseEvent ae)
        {
            System.out.print("mouse Entered");
        }
    });
    b.addMouseListener(new MouseListener()
    {
        public void mouseExited(MouseEvent ae)
        {
            System.out.print("mouse Exited");
        }
    });
    b.addMouseListener(new MouseListener()
    {
        public void mousePressed(MouseEvent ae)
        {
            System.out.print("mouse Pressed");
        }
    });
    b.addMouseListener(new MouseListener()
    {
        public void mouseReleased(MouseEvent ae)
        {
            System.out.print("mouse Released");
        }
    });
}
public static void main(String args[])
{
    new test();
}
}

错误如下:

--------------------Configuration: <Default>--------------------
C:\Users\SHUBHENDU\Documents\test.java:19: <anonymous test$1> is not abstract and      does not override abstract method mouseExited(java.awt.event.MouseEvent) in        java.awt.event.MouseListener
        {
        ^
C:\Users\SHUBHENDU\Documents\test.java:26: <anonymous test$2> is not abstract and does not override abstract method mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener
        {
        ^
C:\Users\SHUBHENDU\Documents\test.java:33: <anonymous test$3> is not abstract and does not override abstract method mouseEntered(java.awt.event.MouseEvent) in java.awt.event.MouseListener
        {
        ^
C:\Users\SHUBHENDU\Documents\test.java:40: <anonymous test$4> is not abstract and does not override abstract method mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener
        {
        ^
C:\Users\SHUBHENDU\Documents\test.java:47: <anonymous test$5> is not abstract and does not override abstract method mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener
        {
        ^
5 errors

最佳答案

如果您有一个具体的 Java 类(非抽象类),您必须实现接口(interface)具有的所有方法,当然前提是您的类实现了该接口(interface)。 因此,将 MouseListener 接口(interface)的未实现的方法添加到您的代码中。但是您每次都向同一个按钮添加一个新的 MouseListener。这不是它的使用方式。您可以/应该在同一个代码体中实现所有 MouseListener 方法。 删除 MouseListener 添加到您的 JButton b 中。

关于java - 无法理解和解决此程序的方法覆盖错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9653064/

相关文章:

Java-将大量数据写入csv

java - Eclipse IDE 问题部分下的死代码是什么意思

java - 当用户关闭应用程序窗口时,是否有一种优雅的方法使 JTable 停止编辑?

.net - 使用 ServiceLocator Bootstrapper 在 MVVM 应用程序中注册事件处理程序的正确位置?

java thread.sleep 也使 swing ui 进入休眠状态

java - 遍历属性文件中的 SOAP 请求

java - JTable 中的条件 JComboBox - 如何自动更改值

java - 将 JFormattedTextField 设置为仅采用允许的值

event-handling - 是否可以停止公告传递的传播?

Javascript 鼠标悬停从 child 冒泡