Java 同时注册MouseListener和MouseMotionListener
我正在尝试编写一个Java 同时注册MouseListener和MouseMotionListener,java,swing,mouseevent,mouselistener,mousemotionlistener,Java,Swing,Mouseevent,Mouselistener,Mousemotionlistener,我正在尝试编写一个Mouse类(实现MouseListener和MouseMotionListener),其中包含mousePressed()和mouseMoved()。我希望能够在鼠标按下时检测鼠标运动。我可以分别检测,但不能同时检测。例如: import javax.swing.*; import java.awt.event.*; public class Test extends JPanel { public Test() { Mouse m = new Mouse();
Mouse
类(实现MouseListener
和MouseMotionListener
),其中包含mousePressed()
和mouseMoved()
。我希望能够在鼠标按下时检测鼠标运动。我可以分别检测,但不能同时检测。例如:
import javax.swing.*;
import java.awt.event.*;
public class Test extends JPanel {
public Test() {
Mouse m = new Mouse();
addMouseListener(m);
addMouseMotionListener(m);
}
class Mouse implements MouseListener, MouseMotionListener{
public void mousePressed(MouseEvent e) {
System.out.println("Pressed");
}
public void mouseMoved(MouseEvent e) {
System.out.println("Moved");
}
public void mouseDragged(MouseEvent e) {}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setSize(500, 500);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(new Test());
frame.setVisible(true);
}
}
正如您应该看到的,“按下”和“移动”都是打印出来的,但是一旦按下鼠标,“移动”就不会打印出来,直到松开鼠标。我怎样才能让它这样做呢
正如您应该看到的,“按下”和“移动”都是打印出来的,但是一旦按下鼠标,“移动”就不会打印出来,直到松开鼠标
按下鼠标时,需要处理的事件是mouseDragged
事件
正如您应该看到的,“按下”和“移动”都是打印出来的,但是一旦按下鼠标,“移动”就不会打印出来,直到松开鼠标
当按下鼠标时,您需要处理的事件是mouseDragged
事件。
无效鼠标标记(鼠标事件e)
当在组件上按下鼠标按钮然后拖动时调用
void mouseMoved(MouseEvent e)
当鼠标光标移动到组件上但未按下任何按钮时调用
mouseMoved
只有在未按下任何按钮时才会触发事件。
无效鼠标标记(鼠标事件e)
当在组件上按下鼠标按钮然后拖动时调用
void mouseMoved(MouseEvent e)
当鼠标光标移动到组件上但未按下任何按钮时调用
mouseMoved
只有在没有按下按钮的情况下才会触发事件。哎呀,我过去在几个问题上帮过你,我先回答了问题,甚至没有收到一封感谢信。祝你在未来的问题上好运。哎呀,我过去在几个问题上帮过你,我先回答了问题,但我甚至没有得到一个感谢。祝你在将来的问题上好运。@RobotKarel314我已经写了将近十年的Java代码,每次开始做新的工作时,我都会打开相关的API页面。学会热爱文档。它出人意料地容易阅读,并且经常链接到示例。@RobotKarel314我已经编写Java代码将近十年了,每次开始编写新的东西时,我仍然会打开相关的API页面。学会热爱文档。它出人意料地容易阅读,并且经常链接到示例。