【问题标题】:How to recognise mouseDragged and mousePressed events in one listener?如何在一个侦听器中识别 mouseDragged 和 mousePressed 事件?
【发布时间】:2010-02-21 19:27:17
【问题描述】:

在以下代码中,mouseDragged 无法识别。我做错了什么?

addMouseListener(new MouseInputAdapter() {

  @Override
  public void mouseDragged(MouseEvent e) { ... }
  @Override
  public void mousePressed(MouseEvent e) { ... }

});

【问题讨论】:

    标签: java swing mouse listener


    【解决方案1】:
    MouseInputAdapter mia = new MouseInputAdapter() {
      @Override
      public void mouseDragged(MouseEvent e) { ... }
      @Override
      public void mousePressed(MouseEvent e) { ... }
    };
    addMouseListener(mia);
    addMouseMotionListener(mia); // <-- You're missing this one.
    

    【讨论】:

      【解决方案2】:

      无法识别,因为您在 addMouseListener 内部实现了 mouseDragged

      mouseDraggedMouseMotionListener 触发,mousePressedMouseListener 触发。

      因此您需要同时实现MouseListenerMouseMotionListener 并相应地添加正确的侦听器。

      public class MyClass extends JPanel implements MouseListener,
                                                     MouseMotionListener {
      
        public MyClass() {
          // whatever code you need, then add the listeners
          this.addMouseListener(this); 
          this.addMouseMotionListener(this);
         }
      
        public void mousePressed(MouseEvent e) { ... }
        public void mouseDragged(MouseEvent e) { ... }
      
      }
      

      【讨论】:

        【解决方案3】:

        不要使用 addMouseListener,而是使用 addMouseMotionListener :

        addMouseMotionListener(new MouseMotionListener() {
        
                @Override
                public void mouseMoved(MouseEvent e) {
                    // TODO Auto-generated method stub
        
                }
        
                @Override
                public void mouseDragged(MouseEvent e) {
                    // TODO Auto-generated method stub
        
                }
            });
        

        :D

        【讨论】:

        • 这个我在来这里问之前试过了,但是因为Anthony Forloney提到的原因,它不起作用。
        猜你喜欢
        • 2012-08-21
        • 1970-01-01
        • 2018-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-20
        • 1970-01-01
        相关资源
        最近更新 更多