У меня очень большое представление о данных. Мне нужна полоса прокрутки для пользователя, но я хочу переопределить стандартный способ, которым полоса прокрутки обрабатывает нажатие стрелок вверх и вниз (или клавиш вверх и вниз на клавиатуре), а также щелчок по области дорожки, которая делает страницу вверх и листать вниз. Это связано с тем, что данные передаются в представление, и модель «min / max / value» для JScrollBar не будет работать для этого.
Стандартный способ обработки этих событий мыши или клавиши заключается в том, что значение полосы прокрутки регулируется либо «приращением единицы» (меньшее значение), либо «приращением блока» (большее значение). Я не хочу, чтобы полоса прокрутки меняла свое значение при нажатии ; Я просто хотел бы получить событие, говорящее «пользователь запросил прокрутку вверх на блок» или «пользователь запросил прокрутку вниз на одну единицу». Кто-нибудь знает способ сделать это?
Кстати, похоже, что BasicScrollBarUI$TrackListener.mousePressed(MouseEvent)
обрабатывает щелчок, и он всегда вызывает scrollbar.setValue(newValue)
. Так что мне может не повезло: (
Возможно, есть способ сделать это с помощью полосы прокрутки SWT?