我有一个有两个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