2013-03-19 141 views
0

我有一個有兩個JSpinner對象的類,x和y。 我有一個更改監聽器被添加到兩個。 有人可以告訴我如何實現我的更改偵聽器,以便偵聽器可以告訴兩個對象之間的區別。 例如僞代碼:JSpinner來源?

if(source equals x) 
    do this 
else if(source equals y) 
    do that 

謝謝你們,

+0

一個更好的辦法是使用匿名類 – 2013-03-19 22:51:28

回答

3

你可以簡單地使用匿名類實現監聽每個微調

例如,如果你想實現更改偵聽到X,你可以這樣做像:

x.addChangeListener(new ChangeListener() 
{ 
    public void stateChanged(ChangeEvent e) 
    { 
    } 
}); 

和同樣的事情y的

2

在可能的情況下,每個控件使用一個監聽器會更加謹慎(正如Ali指出的那樣,+1)。它隔離事件/動作,並使其通常更易於閱讀和做的感覺...

如果自己使用這個,你看不到,那麼每EventObjectgetSource方法這是其提出的控制提供參考事件...

public void stateChanged(ChangeEvent e) 
{ 
    if (e.getSource() == xControl) { 
     // xControl updated 
    } else if (e.getSource() == yControl) { 
     // yControl updated 
    } 
} 
+0

我曾嘗試實施你的解決方案,但後來我得到一個問題,當我想要得到的JSpinner的價值。 – 2013-03-19 23:21:42

+0

大概,你需要將源代碼轉換回「JSpinner」 – MadProgrammer 2013-03-19 23:22:24