![](/img/trans.png)
[英]Why doesn't ChangeListener's getSource() return a pre-cast object of the type used to generate an event?
[英]Why cast a ChangeEvent object to JSlider when using .getSource() Method?
我正在学习的书是通过事件侦听器学习的,我对在使用 event.getSource() 方法时将 ChangeEvent 对象转换为 JSlider 对象感到困惑。 为什么这是必要的?
其次,强制转换或方法调用优先吗? 如果 .getSource() 方法是 ChangeEvent 方法,则方法调用似乎首先发生。
我为单行代码表示歉意,但这就是这本书在简单明确的指示之外提供的将 ChangeEvent 转换为 JSlider 的全部内容:
“此方法使用 ChangeEvent 对象调用,该对象可以识别在 cal 中更改的滑块组件。调用对象的 getSource() 方法并将对象强制转换为 JSlider,如下面的语句所示:”(后面是下面的代码,没有解释为什么要投它)。
JSlider changedSlider = (JSlider) event.getSource();
这不会将事件转换为JSlider
。 它将事件源转换为JSlider
。
事件源是触发事件的滑块。
并且转换可能是必要的,因为其余的代码需要访问JSlider
属性/方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.