我有一個有兩個JSpinner對象的類,x和y。 我有一個更改監聽器被添加到兩個。 有人可以告訴我如何實現我的更改偵聽器,以便偵聽器可以告訴兩個對象之間的區別。 例如僞代碼:JSpinner來源?
if(source equals x)
do this
else if(source equals y)
do that
謝謝你們,
我有一個有兩個JSpinner對象的類,x和y。 我有一個更改監聽器被添加到兩個。 有人可以告訴我如何實現我的更改偵聽器,以便偵聽器可以告訴兩個對象之間的區別。 例如僞代碼:JSpinner來源?
if(source equals x)
do this
else if(source equals y)
do that
謝謝你們,
你可以簡單地使用匿名類實現監聽每個微調
例如,如果你想實現更改偵聽到X,你可以這樣做像:
x.addChangeListener(new ChangeListener()
{
public void stateChanged(ChangeEvent e)
{
}
});
和同樣的事情y的
在可能的情況下,每個控件使用一個監聽器會更加謹慎(正如Ali指出的那樣,+1)。它隔離事件/動作,並使其通常更易於閱讀和做的感覺...
如果自己使用這個,你看不到,那麼每EventObject
有getSource
方法這是其提出的控制提供參考事件...
public void stateChanged(ChangeEvent e)
{
if (e.getSource() == xControl) {
// xControl updated
} else if (e.getSource() == yControl) {
// yControl updated
}
}
我曾嘗試實施你的解決方案,但後來我得到一個問題,當我想要得到的JSpinner的價值。 – 2013-03-19 23:21:42
大概,你需要將源代碼轉換回「JSpinner」 – MadProgrammer 2013-03-19 23:22:24
一個更好的辦法是使用匿名類 – 2013-03-19 22:51:28