我已经对此进行了一段时间的研究,发现关于SWT MouseWheelListeners的信息很少。寻找您中是否有人遇到过这个问题,或者是否有指向某个链接的内容来帮助他们进行解释。

我试图找出有关SWT MouseWheelListener的信息以及如何正确使用它。我试图使用MouseWheelListener在合成上创建缩放效果,该合成在其上绘制多个合成对象。

从本质上讲,当向上拉动放大时,请以两倍于正常大小的大小重新绘制画布,以比例布局重新绘制画布上的对象,然后将焦点移至向上移动的点。

我的问题如下:
是否可以在Composite上使用MouseWheelListener或仅对滚动复合之类的对象使用侦听器(我知道该方法在那里;当我尝试在对象上滚动(包括调试时)时,什么也没发生?
如果可能,如何在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);
}

最佳答案

你是对的。 “计数”在这里表示滚动行数(在Windows中默认为3或-3)

10-06 09:25