我正在开发一个依赖于用户输入的程序,我需要的一件事是该程序识别鼠标滚轮在一次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.