在Java中按下鼠标按钮时如何监听鼠标移动事件

时间:2012-11-02 23:50:36

标签: java mouseevent mouse mousemove

我的程序中有鼠标事件的问题。我正在尝试使用画布编写绘图程序。

如果他左键单击并移动鼠标,用户应绘制。所以我在其中定义了一个Drawer的班级boolean allow_draw,并添加了一个方法draw

通过画布中的draw事件调用

mousemoved,并使用allow_drawmousepressedreleased设置为true和false。

然而,当我按下鼠标按钮时,mousemoved没有触发......

我的问题是:如何在按下鼠标按钮时听鼠标移动。

希望你知道我在寻找什么:)

3 个答案:

答案 0 :(得分:2)

您能发布源代码吗?请尝试添加MouseMotionListener。以下是我正在进行的项目的示例。

addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {

        public void mouseDragged(java.awt.event.MouseEvent evt) {
            formMouseDragged(evt);
        }
        public void mouseMoved(java.awt.event.MouseEvent evt) {
            formMouseMoved(evt);
        }
    });`

答案 1 :(得分:1)

你应该考虑,

  • 使用MouseListener和MouseMotionListener的组合,可以方便地组合在MouseAdapter类中。
  • 发生mousePressed时,在上转动绘图
  • 发生mouseReleased时将绘图关闭
  • 如果启用绘图,则在mouseDragged内绘制(使用if块)。
  • 使用addMouseListener(...)方法和addMouseMotionListener(...)方法将MouseAdapter对象两次添加到组件中。

答案 2 :(得分:0)

按下按钮的鼠标移动事件将是拖动事件。只需听听'MouseListener#mouseDragged',它就是你要找的东西。