鼠标移动时忽略Java鼠标事件?

时间:2012-01-20 03:52:31

标签: java swing mouseevent actionlistener

我最近一直在使用java进行2D游戏,目前我正在努力让事件处理系统正常运行。我试图点击鼠标来启动动画,直到我在点击时尝试移动鼠标一直工作。此时根本没有任何事情发生。我正在使用mouselistener和mousemotionlistener类,问题仍然存在。 这是Main的代码:

public class ML extends MouseAdapter{
   public void mouseClicked(MouseEvent m){
       if(m.getButton()==MouseEvent.BUTTON1)
       guns.playOnce();
   }
   public void mouseReleased(MouseEvent m){
       if(m.getButton()==MouseEvent.BUTTON1);
   }

它调用动画师类来播放一组图像并停止。 在我加入鼠标事件之前,动画师工作得很好。如果在鼠标移动期间没有指定的动作要执行,我无法弄清楚为什么它在鼠标移动期间不起作用。 (如果有一个明显的解决方案,我道歉,我不久前开始使用java。)

1 个答案:

答案 0 :(得分:7)

在Java中,只有鼠标单击才会注册,如果按下并释放鼠标而根本不移动鼠标。这对大多数用户来说很难完成,因此大多数UI元素(如按钮)会对鼠标按下和释放事件作出反应而忽略“点击”。

但是,对于按钮,更好的选择是向其添加ActionListener。然后按钮本身将监听鼠标事件并确定它何时被点击。