Почему не выполняется mouseMoved действие

114
04 декабря 2020, 14:30

При запуске самого простого окна, почему-то не выпоняется событие mouseMoved, хотя рядом, с точно таким же условием, находится точно такой-же mousePressed и всё выводит.

class MainWindow extends JFrame {
    public MainWindow() {
        setSize(300, 300);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        addMouseListener(new MouseAdapter() {
            @Override
            public void mouseMoved(MouseEvent e) {
                int x = e.getX();
                int y = e.getY();
                System.out.println("Coords moved: X- " + x + ", Y - " + y);
            }
            @Override
            public void mousePressed(MouseEvent e) {
                int x = e.getX();
                int y = e.getY();
                System.out.println("Coords: X- " + x + ", Y - " + y);
            }
        });
    }
}
Answer 1

У JFrame 3 слушателя мыши :

addMouseListener(MouseListener l)
addMouseMotionListener(MouseMotionListener l);
addMouseWheelListener(MouseWheelListener l)

Адаптер MouseAdapter реализует все 3 эти интерфейса, метод mouseMoved(MouseEvent e) относится к MouseMotionListener но вы назначаете его только на одно событие addMouseListener, вот попробуйте так:

class MainWindow extends JFrame {
    public MainWindow() {
        setSize(300, 300);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        MouseAdapter mouseAdapter = new MouseAdapter() {
            @Override
            public void mouseMoved(MouseEvent e) {
                int x = e.getX();
                int y = e.getY();
                System.out.println("Coords moved: X- " + x + ", Y - " + y);
            }
            @Override
            public void mousePressed(MouseEvent e) {
                int x = e.getX();
                int y = e.getY();
                System.out.println("Coords: X- " + x + ", Y - " + y);
            }
        };
        addMouseListener(mouseAdapter);
        addMouseMotionListener(mouseAdapter);
    }
}
READ ALSO
Ошибка NullPointerException в CardView [дубликат]

Ошибка NullPointerException в CardView [дубликат]

В отмеченном месте выдается ошибка NullPointerExceptionЗаметил, что задний фон переменных allDishes, если на нее щелкнуть, у всех красный, а у переменной...

116
Календарь, меняющий месяца и годы

Календарь, меняющий месяца и годы

По заданию нужно сделать календарь и стилизовать его с помощью jsУ меня не выходит перекрасить выходные в тёмно-серый

126
Ошмбка в javascript

Ошмбка в javascript

Раньше всё работало нормально, и тут не понятно из за чего ввылезает ошибка

120
Как правильно проситроить объекст javascript?

Как правильно проситроить объекст javascript?

Пишу на React приложениеЕсть состояние, в котором следующее поле panelClassesActive, это объект, который содержит данные об активных элементах

131