【问题标题】:mouseReleased() not being called after a mouseDragged() event?在 mouseDragged() 事件之后没有调用 mouseReleased()?
【发布时间】:2011-09-01 03:46:21
【问题描述】:

鼠标拖动后释放鼠标时是否应该调用mouseReleased()事件?

我需要调用 mouseReleased() 来重置 mouseDragged() 中使用的一些变量,但它似乎从未被调用。

【问题讨论】:

  • 您是否在正在监听的组件内释放鼠标?
  • 另外,您使用的是 MouseListener 还是 MouseMotionListener,还是两者都使用?
  • 我同意 Paulo 的观点——您可能使用的是 MouseMotionListener 但不是 MouseListener。您认为显示代码会有所帮助吗?

标签: java applet awt mouseevent


【解决方案1】:

检查Oracle tutorial 以获取实现两个侦听器的简单方法,正如 Paŭlo 在他的 cmets 中询问的那样

基本上(根据上面的链接修改):

//where initialization occurs:
MyListener myListener = new MyListener();
addMouseListener(myListener);
addMouseMotionListener(myListener);

private class MyListener extends MouseInputAdapter {
  public void mousePressed(MouseEvent e) {
    int x = e.getX();
    int y = e.getY();
    // you may not need this method
  }

  public void mouseDragged(MouseEvent e) {
    // do your code
  }

  public void mouseReleased(MouseEvent e) {
    // reset your variables
  }

【讨论】:

    猜你喜欢
    • 2019-12-03
    • 1970-01-01
    • 2019-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    相关资源
    最近更新 更多