MouseAdapter против MouseListener

У меня есть быстрый вопрос о java. Почему это РАБОТАЕТ:

list.addMouseListener(new MouseListener() {

    public void mouseClicked(MouseEvent e) {
    // TODO Auto-generated method stub
        System.out.println("Mouse click.");
    }

    public void mouseEntered(MouseEvent e) {
        // TODO Auto-generated method stub

    }

    public void mouseExited(MouseEvent e) {
        // TODO Auto-generated method stub

    }

    public void mousePressed(MouseEvent e) {
        // TODO Auto-generated method stub

    }

    public void mouseReleased(MouseEvent e) {
        // TODO Auto-generated method stub

    }

});

но это не так:

list.addMouseListener(new MouseAdapter(){
    public void mouseClick(MouseEvent e) {
        System.out.println("Mouse click.");
    }
});

Спасибо за ответ заранее.

PS Мне пришлось добавить больше текста, потому что этот надоедливый постдобавляющий скрипт не позволяет мне, так как мой пост в основном состоит из кода.


person Community    schedule 15.06.2014    source источник


Ответы (2)


Абстрактный класс MouseAdapter реализует интерфейс MouseListener вместе с:

public void **mouseClicked**(MouseEvent e) {}

и не:

public void **mouseClick**(MouseEvent e)

Этот способ должен работать:

list.addMouseListener(new MouseAdapter(){
    @Override
    public void mouseClicked(MouseEvent e) {
        System.out.println("Mouse click.");
    }
});
person iviorel    schedule 07.12.2015

person    schedule
comment
Ах хорошо подмечено. 1+. Еще одна причина использовать аннотацию @Override, чтобы убедиться, что ваш метод действительно является истинным переопределением. - person Hovercraft Full Of Eels; 16.06.2014