2014-04-15 62 views
-2

我有以下代碼來偵聽mouseclicks,但它似乎並不總是會觸發。Java:mouseClicked事件不總是觸發

nameList.addChangeListener(new MouseAdapter(){ 
    @Override 
    public void mouseClicked(MouseEvent me) { 
     nameListUpdated(); 
    } 
}); 

nameListUpdated()會運行一些時間,但無論出於何種原因,它似乎不會像每次點擊那樣運行。有誰知道爲什麼?還是有更多的信息來找到問題?

+0

什麼是'nameList'? (它是什麼類的) – Paul

+0

另外,嘗試覆蓋'MouseAdapter'(或實現'MouseListener')和'System.out.println(me)'的每個事件的所有方法。然後你可以看到當mouseClicked()不是 – Paul

+0

時你調用的是什麼事件(如果有的話)* *你的問題不清楚。 – vels4j

回答

4

我會建議,而不是使用方法addChangeListener

nameList.addChangeListener(new MouseAdapter(){ 
@Override 
public void mouseClicked(MouseEvent me) { 
    nameListUpdated(); 
} 
}); 

使用方法添加鼠標監聽addMouseListener

nameList.addMouseListener(new MouseAdapter(){ 
@Override 
public void mouseClicked(MouseEvent me) { 
    nameListUpdated(); 
} 
}); 
1

嘗試使用替代的mousePressed。當你按下鼠標按鈕時它會觸發一個事件,而不必等到你釋放它。在大多數情況下,它會訣竅。