MouseListener没有响应

时间:2013-04-24 17:24:30

标签: java mouseevent mouselistener

用于处理拍摄的游戏的MouseListener在使用单独的鼠标时没有响应,但在笔记本电脑上使用内置鼠标时没有响应。在我的播放器类中,mouseClicked方法如下所示:

public void mouseClicked(MouseEvent e){
    if(e.getButton() == MouseEvent.BUTTON1){
        fire();
    }
}

并且在一个扩展JPanel的单独类中,我实现了像这样的MouseListener:

addMouseListener(new MouseAdapter(){
        public void mouseClicked(MouseEvent e){
            player.mouseClicked(e);
        }
    });

我一直使用内置鼠标进行编码和测试游戏,每次点击鼠标左键时,玩家都开始拍摄,但现在当我想尝试用鼠标玩游戏时,我注意到玩家我每次按下鼠标左键都没有开始拍摄,但更多的是80%的时间。

1 个答案:

答案 0 :(得分:1)

  

我注意到每次按下鼠标左键时播放器都没有开始拍摄,但更多的是80%的时间。

尝试使用mousePressed()代替mouseClicked()。只有在同一位置生成mousePressed()和mouseReleased()事件时,才会生成mouseClicked事件。也许您正在将鼠标移动一两个像素,因此无法生成mouseClicked事件。

if(e.getButton() == MouseEvent.BUTTON1)

此外,代替以上使用以下更易于阅读的内容:

if (SwingUtilities.isLeftMouseButton(e))