【问题标题】:mouse pressed->drag->released. in java鼠标按下->拖动->释放。在java中
【发布时间】:2011-11-17 17:31:36
【问题描述】:

对不起:

我只是不知道如何链接这些连续的操作?

鼠标按下然后拖动然后松开。如果用户不执行此操作,则某些操作将不会发生...

我应该添加代码,因为已经按下来区分吗?

常量 MOUSE_MOVED 不起作用,因为 Eclipse 告诉我它不知道,尽管我在 mouse event api 中找到了参数

我不知道发生了什么...请帮忙!

【问题讨论】:

    标签: java swing mouse mouseevent drag-and-drop


    【解决方案1】:

    使用MouseInputAdapter 子类实现MouseInputListener 并处理mousePressed、mouseDragged 和mouseReleased 事件。

    看看这个tutorial 的例子。

    【讨论】:

      【解决方案2】:

      下面是一个简单的类,封装了拖拽检测:

      public abstract static class MouseDragListener {
          java.awt.Component component;
          MouseEvent dragStart;
      
          public MouseDragListener(java.awt.Component component) {
              super();
              this.component = component;
              component.addMouseMotionListener(new MouseAdapter() {
                  public void mouseMoved(MouseEvent e) {
      
                      dragStart = null;
                  }
      
                  public void mouseDragged(MouseEvent e) {
                      if (dragStart == null)
                          dragStart = e;
                  }
              });
              component.addMouseListener(new MouseAdapter() {
                  public void mouseReleased(MouseEvent e) {
                      if (dragStart != null) {
                          dragReleased(dragStart, e);
                      }
                  }
              });
          }
      

      然后使用:

      new MouseDragListener(center){
          void dragReleased(MouseEvent start,MouseEvent end){
                 //  do something ...
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多