【问题标题】:Mouse Click Listener doesn't fire鼠标单击侦听器不触发
【发布时间】:2013-06-14 23:30:24
【问题描述】:

我正在关注here 的教程,我绝对做了同样的事情,但是当我单击鼠标按钮时没有任何反应。我尝试调试,但我不知道该怎么做。

class MouseClickListener extends MouseAdapter{
public void MouseClicked(MouseEvent e){
   if(SwingUtilities.isLeftMouseButton(e)){
     System.out.print("Left clicked");
     }
    else if(SwingUtilities.isRightMouseButton(e)){
     System.out.print("Right Clicked");
     System.out.print("sssss");
     }
     else if(SwingUtilities.isMiddleMouseButton(e)){
     System.out.print("Middle clicked");
 }
     System.out.print(e.getClickCount()+"times ");
     int x=e.getX();
     int y=e.getY();
    System.out.println("at ("+x+","+y+" )");
      }
   }
 public class MouseListenerTest1 extends JFrame{
     public static void main(String[] args){
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frm=new JFrame();
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.addMouseListener(new MouseClickListener());
frm.setSize(200, 200);
frm.setVisible(true);
    }
   }

【问题讨论】:

  • 为了更好的帮助,请尽快发布SSCCE,简短,可运行,可编译

标签: java swing debugging awt mouselistener


【解决方案1】:

mouseClicked 应该以小 m 开头。

这是因为MouseAdapter 包含所有接口方法[包括mouseClicked] 的空实现,如果您不使用正确的名称重载所需的方法,您甚至不会收到错误。

【讨论】:

  • 这就是为什么你应该总是使用@Override
  • 这段关于 MouseListener 的代码是正确的,是关于调试的,而不是 OP
  • 还要确保在您打算更改的方法上添加@Override 符号,以检查签名是否正确!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-16
  • 2019-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多