Как получить доступ к панели прокрутки Nattable ViewportLayer?

#nattable

#nattable

Вопрос:

Я хотел бы поместить пользовательский прослушиватель на полосу прокрутки слоя видового экрана, чтобы запускать другой код при перемещении полосы прокрутки. В настоящее время я расширил HorizontalScrollBarHandler и переопределил метод handleEvent(). Обработчику необходимо получить полосу прокрутки из ViewportLayer, но, к сожалению, она закрыта и не имеет метода получения. Есть ли какой-либо другой способ, которым я могу получить доступ к полосе прокрутки для использования с моим пользовательским обработчиком?

Ответ №1:

NatTable является a Canvas , который является Scrollable . Так что на самом деле вам не следует пытаться разобраться с внутренними компонентами. Должна быть возможность вызвать natTable.getVerticalBar() и natTable.getHorizontalBar() зарегистрировать вашего слушателя.

В качестве альтернативы вы могли бы реализовать свой собственный IScroller, как описано здесь: http://blog.vogella.com/2015/01/26/nattable-with-custom-scrollbars /

Но только для добавления слушателя должно быть достаточно использовать механизмы SWT по умолчанию.