我有一个类,其中包含两个 JSpinner 对象,x 和 y。我有一个添加到两者的更改侦听器。有人可以告诉我如何实现我的更改侦听器,以便侦听器可以分辨出两个对象之间的区别。例如伪代码:
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
}
}