2013-03-19 135 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