Класс MouseEvent имеет такие методы, как getX()
соответственно getXOnScreen()
и те же для оси Y.
Один из способов это сделать: создать класс, содержащий необходимую информацию, например:
class SimpleCoordinate {
private final int x;
...
, а затем в вашей основной программе:
List<SimpleCoordinate> coordinatesHistory = new ArrayList<>();
и в вашем слушателе сделайте:
coordinatesHistory.add(new SimpleCoordinate(...))
Что именно вы храните в своем классе, зависит от вас.Может быть просто «координатами», но может также иметь смысл добавить какую-то временную метку.
Ключевые проблемы, которые необходимо тщательно рассмотреть / спроектировать / протестировать:
- насколько «гранулирован» этот слушатель мыши (например, когда вы очень быстро перемещаете мышь, сколько событий вы получаете)
- сколько времени эта программа должна записывать (если она должна записывать дни или недели активности пользователя, вам может не хватить памяти, просто добавив эту информацию в память)
Конечно, в качестве альтернативы, вы можете поместить записи в какую-то "очередь", и заставить другой поток регулярно извлекать элементы из очереди, чтобы как-то их сохранить.