PropertyChangeListener

来源:互联网 发布:淘宝网落地晒衣架 编辑:程序博客网 时间:2024/05/21 01:51

属性改变监听器

package cn.java.note;import java.beans.PropertyChangeEvent;import java.beans.PropertyChangeListener;import java.beans.PropertyChangeSupport;public class PropertyChangeSupportNote {public static void main(String[] args) {User mUser = new User();mUser.addPropertyChangeListener(new UserPropertyChangeListener(mUser));mUser.setUsername("username1");mUser.setPassword("password1");System.out.println(mUser);}/** * 属性改变监听器 *  * @author Administrator * */protected static class UserPropertyChangeListener implements PropertyChangeListener {private User user;public UserPropertyChangeListener(User user) {super();this.user = user;}@Overridepublic void propertyChange(PropertyChangeEvent evt) {System.out.println(evt.getPropertyName());if ("username".equals(evt.getPropertyName())) {//System.out.println(this.user.getUsername()==evt.getOldValue());//System.out.println(this.user.getUsername()==evt.getNewValue());}}}/** * javaBean * */protected static class User {private final PropertyChangeSupport support = new PropertyChangeSupport(this);private int id;private String username;private String password;public void addPropertyChangeListener(PropertyChangeListener listener) {support.addPropertyChangeListener(listener);}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getUsername() {return username;}public void setUsername(String username) {String oldUsername = this.username;this.username = username;support.firePropertyChange("username", oldUsername, this.username); // 触发属性改变事件}public String getPassword() {return password;}public void setPassword(String password) {String oldPassword = this.password;this.password = password;support.firePropertyChange("password", oldPassword, this.password);}@Overridepublic String toString() {return "User [id=" + id + ", username=" + username + ", password=" + password + "]";}}}


0 0
原创粉丝点击