日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java监听变量的变化_[Java学习小记]使用PropertyChangeSupport来监听变量的变化

發(fā)布時間:2025/4/5 java 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java监听变量的变化_[Java学习小记]使用PropertyChangeSupport来监听变量的变化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近開始要著手寫一個web項目 ,之前沒怎么 寫過Java ,所以覺得蠻有必要把每天學(xué)習(xí)到的一些知識點(diǎn)或者解決的一些問題給記錄下來 。一來供自己在整理過程中掌握鞏固,二來也為以后再次出現(xiàn)該問題時能快速效率地查閱自己所寫的文章,也希望能夠?qū)Σ榭幢疚牡淖x者有些許幫助。平時沒怎么寫過這種博客,寫的不好也請見諒,也希望能夠慢慢地鍛煉自己這項能力吧。前言就不多說了。

今天要處理的問題是:監(jiān)聽一個變量,當(dāng)該變量的值出現(xiàn)變化時能夠獲知,并進(jìn)行相應(yīng)處理。

使用java.bean.PropertyChangeSupport類??慈缦碌臉?gòu)造方法,其實(shí)就是將你要控制的對象綁定到該工具中。

PropertyChangeSupport changes = new PropertyChangeSupport(aclass);

使用到如下3種方法:

changes.addPropertyChangeListener(listener);

changes.removePropertyChangeListener(listener);

changes.firePropertyChange("name", null, name);

分別是注冊監(jiān)聽器,移除監(jiān)聽器,和觸發(fā)一個監(jiān)聽事件。其中name就是aclass中一個String屬性變量。

MyClass aclass = new MyClass();

PropertyChangeSupport changes = new PropertyChangeSupport(aclass);

changes.addPropertyChangeListener(new PropertyChangeListener() {

@Override

public void propertyChange(PropertyChangeEvent evt) {

// TODO Auto-generated method stub

System.out.println("change");

}

});

String str = aclass.getName();

aclass.setName("11");

changes.firePropertyChange("name", str, aclass.getName());

使用匿名內(nèi)部類來實(shí)現(xiàn)監(jiān)聽器,在propertyChange方法中實(shí)現(xiàn)你要的處理。該方法會在firePropertyChange觸發(fā)了事件之后捕獲該事件然后執(zhí)行。也可以通過implements?PropertyChangeListener接口實(shí)現(xiàn)。

當(dāng)bean的屬性發(fā)生變化時,使用PropertyChangeSupport對象的firePropertyChange方法,它會將一個事件發(fā)送給所有已經(jīng)注冊的監(jiān)聽器。該方法有三個參數(shù):屬性的名字、舊的值以及新的值。屬性的值必須是對象,如果是簡單數(shù)據(jù)類型,則必須進(jìn)行包裝。

注意:如果str 和aclass.getName(),也就是舊值和新值是相同的,不會觸發(fā)事件。如果將str改為Null,則都會觸發(fā)事件。

結(jié)果:

change

因?yàn)橐话阕兞恐档淖兓际钦{(diào)用了setter方法,所以我們可以在MyClass中直接綁定PropertyChangeSupport對象。然后在需要監(jiān)聽的屬性的setter方法中調(diào)用firePropertyChange方法,并將添加監(jiān)聽器和移除監(jiān)聽器的方法也由在MyClass中實(shí)現(xiàn)。

簡單的對MyClass修改如下。

public class MyClass {

private String name = "1";

private String age = "2";

private PropertyChangeSupport changes = new PropertyChangeSupport(this);

public void setName(String name) {

String OldName = this.name;

this.name = name;

changes.firePropertyChange("name", OldName, name);

}

public String getName() {

return name;

}

public void setAge(String age) {

this.age = age;

}

public String getAge() {

return age;

}

public void addPropertyChangeListener(PropertyChangeListener listener) {

changes.addPropertyChangeListener(listener);

}

public void removePropertyChangeListener(PropertyChangeListener listener) {

changes.removePropertyChangeListener(listener);

}

}

然后由該類直接調(diào)用

MyClass aclass = new MyClass();

aclass.addPropertyChangeListener(new PropertyChangeListener() {

@Override

public void propertyChange(PropertyChangeEvent evt) {

// TODO Auto-generated method stub

System.out.println(evt.getPropertyName());

System.out.println(evt.getOldValue());

System.out.println(evt.getNewValue());

}

});

aclass.setName("new");

輸出結(jié)果:

name

1

new

可以參考,http://zhangjunhd.blog.51cto.com/113473/36838/

http://www.blogjava.net/fuxueliang/archive/2006/07/18/58738.html

至于提到的javabean,以及其四種屬性之類的內(nèi)容,也不是很了解。等了解了再進(jìn)行補(bǔ)充吧。

總結(jié)

以上是生活随笔為你收集整理的java监听变量的变化_[Java学习小记]使用PropertyChangeSupport来监听变量的变化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产色无码精品视频国产 | 日韩激情视频 | 中文字幕久久久久久久 | 动漫美女被吸奶 | 亚洲产国偷v产偷v自拍涩爱 | 久久国产中文字幕 | 天堂av亚洲| 亚洲人成网站999久久久综合 | 久久综合久久综合久久 | 中文字幕一区二区三 | 日韩av高清在线播放 | 黄色一级a毛片 | 男男肉耽高h彩漫 | 久久国产露脸精品国产 | 欧美精品一区二区三区久久久竹菊 | 色偷偷噜噜噜亚洲男人的天堂 | 欧美日韩一级视频 | 国产精品久久久久久久久久久久久久 | 亚洲精品视频中文字幕 | 麻豆天天躁天天揉揉av | 久久久久久久亚洲av无码 | 欧美激情18p | 亚洲欧美日韩成人在线 | 精品一区二区三区视频在线观看 | 狼人综合视频 | 国产精品入口66mio | 免费簧片在线观看 | 欧美图片一区二区三区 | 国产毛片毛片毛片毛片毛片毛片 | 99久久精品久久久久久清纯 | 日韩精品一区二区三区中文在线 | 少妇中文字幕 | 色呦呦在线观看视频 | 免费的毛片视频 | 超碰在线进入 | 亚洲午夜精品 | 九色视频国产 | 在线观看国产黄 | 国产91美女视频 | av国产成人 | 成人av免费| 色欲av永久无码精品无码蜜桃 | 日韩少妇内射免费播放18禁裸乳 | 另类视频在线观看+1080p | 欧美天天干 | 日韩欧美综合久久 | 国产爆乳无码一区二区麻豆 | 黄色免费网站视频 | 欧美在线视频a | 天天干女人 | 欧美在线观看一区二区三区 | 亚洲1页| 老色批影视| 岛国一区二区 | 97在线免费视频观看 | 欧美操穴 | av免费在线观看不卡 | 久青草免费视频 | 夜夜摸夜夜操 | 免费天堂av | 午夜精品在线播放 | 中国国语农村大片 | 亚洲AV无码一区二区三区性 | 黑人日批视频 | 欧美三级a | 人妖粗暴刺激videos呻吟 | 中文字幕高清在线 | 意大利少妇愉情理伦片 | 色爱AV综合网国产精品 | 国产成人精品视频在线观看 | 欧美一级片 | 亚洲天堂视频网站 | 欧美亚洲综合另类 | 老熟女高潮喷水了 | 亚洲视频一区二区 | 欧美z○zo重口另类黄 | www.好吊色| 国产香蕉精品视频 | 黑森林福利视频导航 | 午夜天堂在线观看 | 蜜桃精品在线 | 中文字幕日产乱码中 | 五月婷婷六月丁香综合 | 色播五月综合 | 欧美啊v | 久在线 | 国产中文字幕久久 | 亚洲精品久久久 | 波多野结衣三级视频 | 亚洲av永久无码国产精品久久 | 欧美bbbbbbbbbbbb18av | 中文字幕人妻一区二区在线视频 | 呦呦精品 | 中文字幕美女 | 欧洲成人一区二区三区 | 亚洲精品6 | 激情六月婷婷 | 欧美美女视频 | 精品欧美黑人一区二区三区 |