JTable прокрутка по положению мыши - PullRequest
2 голосов
/ 11 декабря 2010

Возможно ли иметь строки в JTable-прокрутке в зависимости от положения мыши?

т.е. если курсор приближается к верхней части таблицы, он начинает прокручиваться вверх, а если приближается к нижней части таблицы, он начинает прокручиваться вниз.

Аналогично этому эффекту в as3:

http://activeden.net/item/professional-dock-menu-as2-and-as3/127450

Я сейчас использую:

int row = table.rowAtPoint(e.getPoint());
Rectangle r = table.getCellRect(row,0,true);
table.scrollRectToVisible(r);

внутри слушателя mouseMoved, который прокручивается один раз, когда курсор попадает в верхний / нижний ряд. Я не уверен, как заставить его продолжать прокручиваться после этого (в настоящее время пользователю придется постоянно перемещать мышь, чтобы заставить его продолжать работать).

1 Ответ

1 голос
/ 12 декабря 2010

Я думаю, вам нужно запустить Swing Timer, когда мышь входит в таблицу.В событии mouseMoved вы можете изменить интервал таймера, чтобы сделать его быстрее или медленнее в зависимости от того, где находится мышь относительно верхней / нижней части таблицы.Затем, когда срабатывает таймер, вы можете использовать класс MouseInfo (или сохранить последнюю точку mouseMoved), чтобы определить местоположение мыши и определить, следует ли прокрутить вверх / вниз одну строку.

...