如何通过跟踪鼠标的移动来实现鼠标手势

时间:2011-05-09 19:27:44

标签: java

我想知道如何在Java中跟踪鼠标移动(如滚动),我需要检测用户是否已经加号或减号。有人可以帮我解决这个问题吗?

澄清:

我在JFrame和JPanel中打开了一个pdf文件,当鼠标位于面板边界时,预计他会做一个加号(+)或减号( - )来放大和缩小pdf文件。所以我需要跟踪鼠标的移动。提前谢谢

2 个答案:

答案 0 :(得分:2)

要跟踪鼠标的运动,您需要创建一个鼠标运动监听器:

public class MouseMotionEventDemo extends JPanel 
                              implements MouseMotionListener {
//...in initialization code:
    //Register for mouse events on blankArea and panel.
    blankArea.addMouseMotionListener(this);
    addMouseMotionListener(this);
    ...
}

public void mouseMoved(MouseEvent e) {
   saySomething("Mouse moved", e);
}

public void mouseDragged(MouseEvent e) {
   saySomething("Mouse dragged", e);
}

void saySomething(String eventDescription, MouseEvent e) {
    textArea.append(eventDescription 
                    + " (" + e.getX() + "," + e.getY() + ")"
                    + " detected on "
                    + e.getComponent().getClass().getName()
                    + newline);
}

}

java documentation将有助于此。要跟踪用户何时绘制加号或减号,我建议您创建一个网格。每次触发运动事件时,将鼠标的坐标添加到网格中。当所有坐标都与您定义的“加号”符号或“减号”符号相匹配时,您可以随后执行任何操作。

答案 1 :(得分:0)

假设您正在使用AWT或Swing,原则上您需要一个MouseMotionListener。实现它(或子类MouseMotionAdapter并实现相关方法)并将其添加到您想要观察用户的组件。

你必须以某种方式记录鼠标位置,然后对其进行一些信号识别。可能有一些图书馆对此有所帮助,但我不知道。