错误:WindowText不是抽象的,并且不重写java.awt.event.mouseStener中的抽象方法mouseExited(java.awt.event.MouseEvent)

错误:WindowText不是抽象的,并且不重写java.awt.event.mouseStener中的抽象方法mouseExited(java.awt.event.MouseEvent),java,awt,textfield,Java,Awt,Textfield,我已经编写了一个程序来显示一个带有标签、文本字段和按钮的窗口。当鼠标单击文本字段时,应该调用程序VirtualKeyboardTest.java import java.awt.*; import java.awt.event.*; class WindowText implements MouseListener { public static void main(String[] args) { Frame f=new Frame("New Window"

我已经编写了一个程序来显示一个带有标签、文本字段和按钮的窗口。当鼠标单击文本字段时,应该调用程序VirtualKeyboardTest.java

import java.awt.*;
import java.awt.event.*;

class WindowText implements MouseListener
{
    public static void main(String[] args) 
    {
        Frame f=new Frame("New Window");
        f.setSize(500,300);
        f.setVisible(true);
        f.addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent e){
                System.exit(0);
            }
        });
        Panel p = new Panel();
        Panel p1 = new Panel();
        Label lb = new Label("Click on textfield");
        TextField tf = new TextField(20);
        tf.addMouseListener(new MouseAdapter(){
            public void mouseClicked(MouseEvent e)
            {
                new VirtualKeyboardTest();
            }
            public void mousePressed(MouseEvent e){}
            public void mouseEntered(MouseEvent e){}
            public void mouseExited(MouseEvent e){}
            public void mouseReleased(MouseEvent e){}
        });

        p.setLayout(new FlowLayout());
        p.add(lb);
        p.add(tf);

        Button Submit=new Button("Submit");
        p.add(Submit);
        p1.add(p);
        f.add(p1,BorderLayout.CENTER);
    }
}
但是当我试图编译这个程序时,我得到了一个错误

 WindowText.java:4: WindowText is not abstract and does not override abstract method mouseExited(java.awt.event.MouseEvent) in java.awt.event.MouseListener
    class WindowText implements MouseListener
    ^
    1 error

我无法理解为什么我会出现这个错误,尽管我已经在MouseListener中过度使用了每个方法。

您需要实现MouseListener的方法

                public void mousePressed(MouseEvent e){}
                public void mouseEntered(MouseEvent e){}
                public void mouseExited(MouseEvent e){}
                public void mouseReleased(MouseEvent e){}
必须在MouseText中重写。
但是由于您有一个匿名适配器,MouseText实现MouseListener似乎是多余的。

您需要实现MouseListener拥有的方法

                public void mousePressed(MouseEvent e){}
                public void mouseEntered(MouseEvent e){}
                public void mouseExited(MouseEvent e){}
                public void mouseReleased(MouseEvent e){}
class WindowText implements MouseListener 
必须在MouseText中重写。 但由于您有一个匿名适配器,MouseText实现MouseStener似乎是多余的

class WindowText implements MouseListener 
这意味着
WindowTest
应该为接口
MouseListener

错误明确指出:
mouseExited(java.awt.event.MouseEvent)
尚未在类中实现。因此,您应该实现该方法以成功编译

(*)如果实现类是抽象的,它可能不会定义主体,并且可能会将方法标记为
抽象
。现在它应该由它的dervied类实现。我希望这能澄清错误陈述中使用的抽象词

这意味着
WindowTest
应该为接口
MouseListener

错误明确指出:
mouseExited(java.awt.event.MouseEvent)
尚未在类中实现。因此,您应该实现该方法以成功编译


(*)如果实现类是抽象的,它可能不会定义主体,并且可能会将方法标记为
抽象
。现在它应该由它的dervied类实现。我希望这可以清除错误声明中使用的抽象词。

@Gambler您已经在Main中有了
新的MouseAdapter(){..}
(匿名适配器)。由于MouseText中没有字段,我觉得您不需要实现MouseStener。移除
实现MouseListener
,你应该会没事的。唉,我可能会在这个阶段放弃。刘易斯不是刘易斯呵呵:P@Gambler您在Main中已经有了
新的MouseAdapter(){..}
(匿名适配器)。由于MouseText中没有字段,我觉得您不需要实现MouseStener。移除
实现MouseListener
,你应该会没事的。唉,我可能会在这个阶段放弃。刘易斯,而不是刘易斯:在这个千禧年,使用Swing组件而不是AWT。在这个千禧年,使用Swing组件而不是AWT。