我创建了一个User bean类并将其绑定到JTextField。我希望在调用bean的方法setName时更新文本字段。代码如下:
package newpackage;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
public class User {
private String name;
public User() {
}
public User(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
propertyChangeSupport.firePropertyChange(null, null, null);
}
private final PropertyChangeSupport propertyChangeSupport = new PropertyChangeSupport(this);
public void addPropertyChangeListener(PropertyChangeListener listener) {
propertyChangeSupport.addPropertyChangeListener(listener);
}
public void removePropertyChangeListener(PropertyChangeListener listener) {
propertyChangeSupport.removePropertyChangeListener(listener);
}
}我使用NetBeans来设计一个图形用户界面。它起作用了。但我想知道使用Swing组件实现bean绑定是否正确。
发布于 2020-03-23 18:44:14
差不多了。尝试如下所示(未经测试):
public void setName(String name) {
String oldName = this.name;
this.name = name;
propertyChangeSupport.firePropertyChange("name", oldName, name);
}请参阅Javadoc。
https://stackoverflow.com/questions/60811845
复制相似问题