首页 > 其他分享 >PropertyChangeSupport类学习

PropertyChangeSupport类学习

时间:2023-09-04 11:55:53浏览次数:37  
标签:listener 学习 PropertyChangeSupport TunnelStatusType oldValue evt deployStatusType

PropertyChangeSupport主要用于监听属性变更。

  1. 在类里增加监听器
private final PropertyChangeSupport listener = new PropertyChangeSupport(this);
  1. 补充监听方法
public void addPropertyChangeListener(PropertyChangeListener listener){
    this.listener.addPropertyChangeListener(listener);
}

public void removePropertyChangeListener(PropertyChangeListener listener){
    this.listener.removePropertyChangeListener(listener);
}
  1. 在属性set时补充监听
public void setDeployStatusType(TunnelStatusType deployStatusType) {
    TunnelStatusType oldValue = this.deployStatusType;
    this.deployStatusType = deployStatusType;
    this.listener.firePropertyChange("deployStatusType", oldValue, this.deployStatusType);
}
  1. 在具体的类里补充监听实现
srPolicyInfo.addPropertyChangeListener(evt -> {
    if (!"deployStatusType".equals(evt.getPropertyName())) {
        return;
    }
    if (evt.getOldValue() instanceof TunnelStatusType && evt.getNewValue() instanceof TunnelStatusType) {
        TunnelStatusType oldValue = (TunnelStatusType) evt.getOldValue();
        TunnelStatusType newValue = (TunnelStatusType) evt.getNewValue();
        if (TunnelStatusType.DELETE.equals(oldValue) && TunnelStatusType.NORMAL.equals(newValue)) {
            removePath(Lists.newArrayList(removeReq));
        }
    }
});

标签:listener,学习,PropertyChangeSupport,TunnelStatusType,oldValue,evt,deployStatusType
From: https://www.cnblogs.com/liu-im/p/17676541.html

相关文章

  • c++ opencv 16bit tiff图像学习笔记
    1、读取图像基本信息:长、宽、通道数、灰度最大值、最小值、均值、方差值和灰度直方图#include<opencv2/opencv.hpp>usingnamespacecv;usingnamespacestd;intmain(intargc,char**argv){//读入图像Matsrc=imread("C:\\Users\\MingYi-LZQ\\Desktop\\1......
  • linux宏offset_of学习随笔
    offset_of宏定义:include/linux/stddfx.h功能:给出两个参数:结构体和它的成员,获取其成员关于结构体首地址的偏移:#defineoffset_of(type,member)(unsignedlong)&((type*)0)->member这个想法挺精巧的,逐层拆开,首先看里面的(type*)0 ,这是将0地址强行转换为了一个type结构......
  • 侵入式链表学习
    在408和常见教材里面,以普通的尾指针点单链表为例,一个链表节点包含数据部分和尾指针。首个节点称为头节点,不包含数据,它的尾指针指向下一个节点(首个节点设计成存数据的也行)。每个节点依次连接,直到最后一个节点,尾指针设为null,表示链表结束。如果设计一个节点内有首尾两个指针,那就可......
  • 机器学习算法编程小技巧——numpy用法之np.c_
     importnumpyasnp#创建两个一维数组a=np.array([1,2,3])b=np.array([4,5,6])#使用numpy.c_将它们连接在一起"""numpy.c_是一个方便的工具,用于沿第二轴连接数组。它将数组转换为至少2-D,并将它们堆叠在一起。这在需要将多个数组组合成一个更大数组的情况......
  • Spring Boot(04):让你的Spring Boot应用“火力全开”,从零开始学习starter
    ......
  • 多线程学习笔记
     1.进程和线程进程是指一个程序,例如QQ,打开会占用一定的内存和空间,会有产生和消亡。线程是由进程创造,一个进程可以有多个线程。单线程:在同一个时刻,只允许执行一个线程。多线程:在同一个时刻,允许执行多个线程。并发:同一时刻,多个任务交替执行,例如一台电脑同时运行qq和迅雷,看着貌似是有......
  • 机器学习 -> Machine Learning (III)
    来做一些入门题吧.以下大多是kaggle环境.Q1Titanichttps://www.kaggle.com/competitions/titanicimport#ThisPython3environmentcomeswithmanyhelpfulanalyticslibrariesinstalled#Itisdefinedbythekaggle/pythonDockerimage:https://github.com/......
  • 《一般图最大匹配》学习总结
    带花树学不会,不玩了。咕掉。随机化来学随机化吧。。。实际上在随机数据上表现甚至优于带花树,不过他为什么要随机而且为什么随机就能搞我也不知道。就背一个板子就好了。点击查看代码#include<bits/stdc++.h>typedeflonglongLL;usingnamespacestd;constintMAXN=1......
  • pyspark学习
    frompysparkimport*frompyspark.sqlimportSparkSessionfrompyspark.sqlimportfunctionsasfimportjsonimportosfrompyspark.sql.typesimportStructType,IntegerType,StringType#os.environ['HADOOP_CONF_DIR']='/export/server/h......
  • 《Java编程思想第四版》学习笔记22
    注意下面这两句话:1、针对g()和main(),Throwable类必须在违例规格中出现,因为fillInStackTrace()会生成一个Throwable对象的句柄。由于Throwable是Exception的一个基础类,所以有可能获得一个能够“掷”出的对象(具有Throwable属性),但却并非一个Exception(违例)。因此,在main()......