java - 为什么使用 .getSource() 方法时将 ChangeEvent 对象转换为 JSlider?

标签 java swing java-8 jslider

我正在学习的书是通过事件监听器,我对使用 event.getSource() 方法时将 ChangeEvent 对象转换为 JSlider 对象感到困惑。为什么这是必要的?

其次,强制转换或方法调用是否优先?如果 .getSource() 方法是 ChangeEvent 方法,则方法调用似乎首先发生。

我对单行代码表示歉意,但这就是这本书提供的所有内容,除了将 ChangeEvent 转换为 JSlider 的简单明确指示之外:

“使用 ChangeEvent 对象调用此方法,该对象可以识别在 cale 中发生更改的 slider 组件。调用该对象的 getSource() 方法并将该对象转换为 JSlider,如以下语句所示:”(后面是代码下面没有解释为什么要转换它)。

JSlider changedSlider = (JSlider) event.getSource();

最佳答案

这不会将事件转换为 JSlider。它将事件的转换为JSlider

事件的来源触发事件的 slider 。

并且转换可能是必要的,因为其余代码需要访问 JSlider 属性/方法。

关于java - 为什么使用 .getSource() 方法时将 ChangeEvent 对象转换为 JSlider?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57638734/

相关文章:

java - 如何复制目录及其子目录、文件和zip文件

java - 整数除法 : Why is the result of 1/3 == 0?

当在另一个可变参数方法中调用可变参数方法时,Java 可变参数不检测

java - Swing worker : illegal start of type

java - Firebase 上传监听器永远不会被解雇

java - 在原始 GUI 框架内显示图像

java - Swing:单击一个框架中的按钮,显示具有不同组件的另一个框架

java - CompletableFuture 中的类未正确加载

java - 是否有等效于 ChronoUnit.between 的返回分数而不是整数?

foreach - 对流的操作产生结果,但不修改其底层数据源