我想知道如何在Java中跟踪鼠标移动(如滚动),我需要检测用户是否已经加号或减号。有人可以帮我解决这个问题吗?
澄清:
我在JFrame和JPanel中打开了一个pdf文件,当鼠标位于面板边界时,预计他会做一个加号(+)或减号( - )来放大和缩小pdf文件。所以我需要跟踪鼠标的移动。提前谢谢
答案 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并实现相关方法)并将其添加到您想要观察用户的组件。
你必须以某种方式记录鼠标位置,然后对其进行一些信号识别。可能有一些图书馆对此有所帮助,但我不知道。