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页面。学会热爱文档。它出人意料地容易阅读,并且经常链接到示例。