SWT MouseWheelListener - PullRequest
       33

SWT MouseWheelListener

1 голос
/ 25 октября 2011

Я какое-то время изучал это и нашел очень мало информации о SWT MouseWheelListeners. Выясните, сталкивался ли кто-либо из вас с этим или имеет ссылку на что-то, что могло бы помочь объяснить их.

Я пытаюсь найти информацию о SWT MouseWheelListener и о том, как она используется надлежащим образом. Я пытаюсь использовать MouseWheelListener для создания эффекта масштабирования на композите, который рисует на нем несколько составных объектов.

По сути, при увеличении изображения можно перерисовать холст в два раза больше нормального размера, перерисовать объекты на холсте в пропорциональной компоновке и переместить фокус в точку, на которой ведется вращение.

Мои вопросы следующие: Можно ли использовать MouseWheelListener для Composite или слушатель только для таких объектов, как прокручиваемые композиты (я знаю, что метод есть; ничего не происходит, когда я пытаюсь прокрутить свой объект (в том числе при отладке)? Как скинуть MouseScrolledEvent на Composite, если возможно Как провести различие между колесом вверх и колесом вниз (например, положительное значение для положительного и отрицательное для отрицательного)?

Код следует:

public TagCloudComposite(Composite parent, int style) {
    super(parent, style);
    addMouseWheelListener(new MouseWheelListener() {
        public void mouseScrolled(MouseEvent e) {
            int count = e.count;
            System.out.println(count);
            // int direction = (Math.abs(count) > 0) ? UP : DOWN;
            // changeBackground(direction);
        }
    });
    this.setLayout(new FillLayout());
    this.setMinWeight(1);
    this.setMaxWeight(100);
    c = new Composite(this, SWT.NONE);
    this.setSize(300, 200);
}

Ответы [ 2 ]

2 голосов
/ 29 октября 2013

Можно использовать MouseWheelListener на холсте;единственное, что триггер события только для компонента с фокусом.

Холст обычно не получает фокус, если вы не добавляете в него ключевой слушатель (даже пустой).

(я знаю, что вопрос довольно старый, но, столкнувшись с той же проблемой, Google направил меня туда, так что вот решение).

2 голосов
/ 18 мая 2012

Да, вы правы.«Количество» здесь означает количество строк прокрутки (по умолчанию 3 или -3 в Windows)

...