当前位置: 首页 > article >正文

Java 监听器示例(非界面)

在Java中,java.util.EventListener 是一个标记接口,用于表示一个对象可以接收事件并处理它。通常,它与具体的事件监听器接口一起使用,这些接口继承自 EventListener 并定义了具体的事件处理方法。
以下是一个非界面相关的例子,我们将创建一个简单的温度监控系统。这个系统将有一个 TemperatureSensor 类,它可以在温度变化时通知监听器。我们还会定义一个 TemperatureListener 接口,它继承自 EventListener

import java.util.EventListener;
import java.util.ArrayList;
import java.util.List;
// 定义事件监听器接口
interface TemperatureListener extends EventListener {
    void temperatureChanged(TemperatureEvent event);
}
// 定义事件类
class TemperatureEvent {
    private final double temperature;
    public TemperatureEvent(double temperature) {
        this.temperature = temperature;
    }
    public double getTemperature() {
        return temperature;
    }
}
// 定义事件源
class TemperatureSensor {
    private double temperature;
    private final List<TemperatureListener> listeners = new ArrayList<>();
    public void addTemperatureListener(TemperatureListener listener) {
        listeners.add(listener);
    }
    public void removeTemperatureListener(TemperatureListener listener) {
        listeners.remove(listener);
    }
    public void setTemperature(double temperature) {
        this.temperature = temperature;
        // 当温度改变时,通知所有监听器
        for (TemperatureListener listener : listeners) {
            listener.temperatureChanged(new TemperatureEvent(temperature));
        }
    }
}
// 实现事件监听器
class TemperatureLogger implements TemperatureListener {
    @Override
    public void temperatureChanged(TemperatureEvent event) {
        System.out.println("Temperature changed to " + event.getTemperature() + " degrees Celsius.");
    }
}
// 主类
public class TemperatureMonitor {
    public static void main(String[] args) {
        TemperatureSensor sensor = new TemperatureSensor();
        
        // 添加事件监听器
        TemperatureLogger logger = new TemperatureLogger();
        sensor.addTemperatureListener(logger);
        // 模拟温度变化
        sensor.setTemperature(23.5);
        sensor.setTemperature(24.0);
        sensor.setTemperature(25.5);
        
        // 移除事件监听器
        sensor.removeTemperatureListener(logger);
    }
}

在这个例子中,我们创建了一个 TemperatureSensor 类,它可以检测温度变化,并通过 TemperatureListener 接口通知监听器。TemperatureLogger 类实现了 TemperatureListener 接口,并打印出温度变化。在 main 方法中,我们模拟了温度变化,并观察了监听器的行为。
请注意,这个例子没有使用任何图形用户界面组件,是一个纯后端的事件监听和处理的例子。


http://www.kler.cn/news/363303.html

相关文章:

  • Flume面试整理-Flume的故障排除与监控
  • LabVIEW提高开发效率技巧----离线调试
  • 若依前后分离版集成积木报表
  • 深入解析C++游戏开发:从基础到高级应用
  • Python re 模块:正则表达式的强大工具
  • 空间数据分析实验04:空间统计分析
  • 华为ICT题库-大数据部分
  • 【国潮来袭】华为原生鸿蒙 HarmonyOS NEXT(5.0)正式发布:鸿蒙诞生以来最大升级,碰一碰、小艺圈选重磅上线
  • 大模型干货 | 提示词工程十大技巧:释放大模型潜力的最佳工具
  • SpringMVC源码-异常处理机制
  • 找到连续赢 K 场比赛的第一位玩家
  • YoloV8改进策略:注意力改进|DeBiFormer,可变形双级路由注意力|引入DeBiLevelRoutingAttention注意力模块(全网首发)
  • Qt初识及其环境搭建
  • 无人机初识及应用概览
  • 实现vuex源码,手写
  • 什么是网络代理
  • torch.argsort 函数介绍
  • 【AIGC】ChatGPT提示词Prompt高效编写模式:Self-ask Prompt、ReACT与Reflexion
  • Java面向对象编程进阶(一)
  • 对于MacOSX开启稳定SMB分享的研究
  • 讲个故事:关于一次接口性能优化的心里路程
  • 数据库运行原理图
  • JVM锁升级的过程(偏向锁,轻量级锁,重量级锁)
  • String的运算符重载
  • C#中跨线程调用的方法一点总结
  • 数据仓库基础概念