При запуске самого простого окна, почему-то не выпоняется событие 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);
}
});
}
}
У 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);
}
}
Продвижение своими сайтами как стратегия роста и независимости