Java 的 getWheelRotation() 总是返回 1 或 -1



我正在开发一个依赖于用户输入的程序,我需要的一件事是该程序识别鼠标滚轮在一次sroll中向前或向后旋转了多少次"点击"。

为此,我使用了MouseWheelListener和函数getWheelRotation(),即:

以整数形式返回鼠标滚轮旋转时的"单击次数"。

然而,它似乎只会返回-1(如果旋转远离用户)或1(如果旋转朝向用户)。例如,如果轮子在离我3"点击"的地方旋转,程序将返回-1三次,而不是-3(当然,移动是连续进行的)。以下是我用于该特定任务的代码:

private class Handler implements MouseListener, MouseWheelListener {
     public void mouseWheelMoved(MouseWheelEvent event){        
         System.out.println(event.getWheelRotation());   
     }
//Some more code
}    

我的代码有错误吗?如果没有,是否可以用另一种方式实现,以便函数返回所需的值?

您可以尝试使用一个count函数,该函数在每次转轮转动时调用,并计算在私有成员变量中"单击"的频率。

private int counter = 0;
private count(int x) {
    counter += x;
    System.out.println("The wheel was turned " + counter + " times.");
}
private class Handler implements MouseListener, MouseWheelListener {
    public void mouseWheelMoved(MouseWheelEvent event){
        count(event.getWheelRotation());
    }
    //Some more code
}

车轮"碰撞"3次后的输出为:

The wheel was turned 1 times.
The wheel was turned 2 times.
The wheel was turned 3 times.

相关内容

  • 没有找到相关文章

最新更新