我有一个类,其中有两个JSpinner对象,x和y。我有一个添加到这两个对象中的更改侦听器。谁能告诉我如何实现我的更改侦听器,以便侦听器能够区分两个对象之间的区别。例如伪码:
if(source equals x)
do this
else if(source equals y)
do that谢谢你们,
发布于 2013-03-20 06:55:40
您可以简单地使用匿名类来实现每个微调控制项的侦听器
例如,如果您想要将监听器更改为x,您可以这样做:
x.addChangeListener(new ChangeListener()
{
public void stateChanged(ChangeEvent e)
{
}
});对你来说也是一样
发布于 2013-03-20 07:16:42
更谨慎的做法(正如Ali所指出的,+1)是在可能的情况下为每个控件使用一个监听器。它隔离了事件/动作,使其更易于阅读和理解……
如果您看不到自己在使用它,那么每个EventObject都有一个getSource方法,它是对引发事件的控件的引用……
public void stateChanged(ChangeEvent e)
{
if (e.getSource() == xControl) {
// xControl updated
} else if (e.getSource() == yControl) {
// yControl updated
}
}https://stackoverflow.com/questions/15512034
复制相似问题