【问题标题】:Java beans binding in GUIGUI 中的 Java bean 绑定
【发布时间】:2020-03-23 10:34:30
【问题描述】:

我创建了一个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 来设计 GUI。有用。但我想知道用 Swing 组件实现 bean 绑定是否是正确的方法。

【问题讨论】:

  • 如果这是一个新应用程序,请考虑使用 JavaFX 而不是 Swing。它还带有属性绑定支持。

标签: java swing


【解决方案1】:

几乎。尝试这样的事情(未经测试):

public void setName(String name) {
       String oldName = this.name;
       this.name = name;
       propertyChangeSupport.firePropertyChange("name", oldName, name);
}

请参阅Javadoc

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    相关资源
    最近更新 更多