Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GUI中的javabean绑定_Java_Swing - Fatal编程技术网

GUI中的javabean绑定

GUI中的javabean绑定,java,swing,Java,Swing,我创建了一个用户bean类并将其绑定到一个JTextField。我想在调用bean的方法setName时更新textfield。代码如下: package newpackage; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; public class User { private String name; public User() { }

我创建了一个用户bean类并将其绑定到一个JTextField。我想在调用bean的方法setName时更新textfield。代码如下:

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绑定是否正确。

几乎可以。尝试以下未经测试的方法:

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

参阅./P>如果这是一个新的应用程序,请考虑JavaFX而不是Swing。它还提供了属性绑定支持。