MouseListener 方法被覆盖但编译器另有说明?

MouseListener methods overridden but compiler says otherwise?

        JTextArea messageDisplayArea=new JTextArea();
        messageDisplayArea.addMouseListener(new MouseListener(){
            public void mouseEntered(MouseEvent m){
                JOptionPane.showMessageDialog(null,"a");
            }
        });
        messageDisplayArea.addMouseListener(new MouseListener(){
            public void mouseExited(MouseEvent m){

            }
        });
        messageDisplayArea.addMouseListener(new MouseListener(){
            public void mouseClicked(MouseEvent m){

            }
        });
        messageDisplayArea.addMouseListener(new MouseListener(){
            public void mousePressed(MouseEvent m){

            }
        });
        messageDisplayArea.addMouseListener(new MouseListener(){
            public void mouseReleased(MouseEvent m){

            }
        });

这是我的代码的一部分,我导入了 java.awt.* 和 java.awt.event.* 以及 javax.swing.* 但没有实现 MouseListener 接口。我已经重写了 MouseListener 接口中的所有方法,但编译器抛出 5 个错误,都说 class 不是抽象的,并且没有重写 MouseListener 中的抽象方法。我做错了什么?

尝试添加@Override。

使用该代码,您不需要实现 MouseListener。

也可以使用 new MouseAdapter()

而不是 new Mouselistener()

示例代码:

</h2> <pre><code> JTextArea textArea = new JTextArea(); textArea.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent e) { } @Override public void mouseEntered(MouseEvent e) { } @Override public void mouseExited(MouseEvent e) { } @Override public void mousePressed(MouseEvent e) { } @Override public void mouseReleased(MouseEvent e) { } });