在我的程序中,我有幾個swing組件,我碰到的一個問題是如果觸發了一個動作事件,我的ActionPerformed方法會觸發兩次。我最終發現這是由於我的ActionBistener有兩次意外添加了一個ActionListener,所以我確認了這兩個確認。爲什麼一個組件的ActionListener會影響另一個組件?
然而,有一兩件事,我不明白,我是相當新的Java的所以請原諒我問的東西,似乎是顯而易見的:
我已經給我的所有組件動作偵聽器這樣的:
confirmBtn.addActionListener(this);
,然後參考他們在我的ActionPerformed(ActionEvent e)
方法是這樣的:
if(e.getSource() == confirmBtn)
Execute code....
我的問題是,爲什麼那麼,意外地給剛one組件是一個額外的ActionListener,它是否影響了在ActionPerformed方法中被調用的所有其他組件,通過使它們也被觸發兩次?這與我給每個組件ActionListeners的方式有關嗎?
另外,如果問題標題的措詞不正確,我很抱歉,因爲難以嘗試和解釋 – Jake 2012-02-10 23:02:04
所以,您的意思是,意外地將相同的操作偵聽器添加到相同的組件兩次(導致它被調用兩次),所有你添加到其他組件的其他動作偵聽器也會被觸發兩次? – 2012-02-10 23:08:25
是的我的問題是爲什麼會發生這種情況,我不明白它背後的邏輯。 – Jake 2012-02-10 23:09:23