2013-04-24 45 views
0

處理拍攝的遊戲的MouseListener在使用單獨的鼠標時沒有響應,但在我的筆記本電腦上使用內置鼠標時沒有響應。在我的播放器類中的mouseClicked方法是這樣的:MouseListener無響應

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

,並在擴展JPanel一個單獨的I類實現MouseListener這樣的:

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

我一直用我的內置鼠標編碼並測試遊戲,每當我點擊鼠標左鍵時,玩家開始拍攝,但現在當我想用鼠標玩遊戲時,我發現玩家每次按下鼠標左鍵都沒有開始拍攝,但是更像是80%的時間。

+0

的事實是間歇性的指示出頭錯用鼠標本身。我會嘗試在鼠標監聽器中放置一個調試斷點或一個調試日誌語句,並試圖找出它所產生的斷點。 – nikkatsa 2013-04-24 17:44:46

回答

1

我注意到玩家每次按下鼠標左鍵都沒有開始拍攝,但更像是80%的時間。

嘗試使用mousePressed()而不是mouseClicked()。只有在同一位置生成mousePressed()和mouseReleased()事件時,纔會生成mouseClicked事件。也許你正在將鼠標移動一個或兩個像素,這樣mouseClicked事件就不會生成。

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

而且,取代上述使用哪一個更容易閱讀以下內容:

if (SwingUtilities.isLeftMouseButton(e))