我不太了解 ItemEvent 对象的以下方法之间的区别,尤其是在下面的代码示例中:
Object getItem()
从类ItemEvent,Java-API:
返回受事件影响的项目。
ItemSelectable getItemSelectable()
从类ItemEvent,Java-API:
返回事件的发起者。
Object getSource()
继承自EventObject类,Java-API:
返回最初发生事件的对象。
我所知道的是,这getItemSelectable()
简化了获取对象的过程,因为我不必显式地强制转换来使用getText()
. (所以(JCheckBox)
第二个println
命令中的强制转换是不必要的。)我知道,getItemSelectable()
使用getSource()
. 但为什么还有另一个getItem()
?
但是下面的示例没有显示这些方法之间的任何区别:
JCheckBox cb = new JCheckBox("text of checkbox", true);
ItemListener myListener = new ItemListener()
{
@Override
public void itemStateChanged(ItemEvent e)
{
System.out.println(((JCheckBox) e.getItem()).getText());
System.out.println(((JCheckBox) e.getSource()).getText());
System.out.println(((JCheckBox) e.getItemSelectable()).getText());
}
};
cb.addItemListener(myListener);
输出:
复选框文本
复选框文本
复选框文本
那么确切的区别是什么,我什么时候使用哪个功能?
编辑:也许没有区别,至少没有概念上的区别(返回类型和原始类除外)?