Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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
将JavaFXTextField绑定到两个SimpleStringValue中的字符串值_Java_User Interface_Javafx_Textfield_Java 8 - Fatal编程技术网

将JavaFXTextField绑定到两个SimpleStringValue中的字符串值

将JavaFXTextField绑定到两个SimpleStringValue中的字符串值,java,user-interface,javafx,textfield,java-8,Java,User Interface,Javafx,Textfield,Java 8,我有三个JavaFX文本字段,一个用于名称,一个用于域,最后一个用于FQDN(完全限定的域名) 我有一个包含名称、域和FQDN的SimpleStringProperties的类。我无法为FQDN创建绑定,该绑定采用SimpleStringProperty名称和SimpleStringProperty域中设置的值并创建SimpleStringPropertyname@domain. 我试图通过组合名称和域并添加@来构建字符串,但是我无法将其返回到SimpleStringProperty以发送到FQ

我有三个JavaFX文本字段,一个用于名称,一个用于域,最后一个用于FQDN(完全限定的域名)

我有一个包含名称、域和FQDN的SimpleStringProperties的类。我无法为FQDN创建绑定,该绑定采用SimpleStringProperty名称和SimpleStringProperty域中设置的值并创建SimpleStringPropertyname@domain. 我试图通过组合名称和域并添加@来构建字符串,但是我无法将其返回到SimpleStringProperty以发送到FQDN的GUI

我已经包括了一个我所做的粗略的例子。我有GUI和许多其他组件在工作,但我无法正确报告FQDN

我之前在JavaSwing中添加了一个ActionListener来监听鼠标移动,然后更新字段。我正在努力改进这一点

public class Data {
static SimpleStringProperty name = new SimpleStringProperty();
static SimpleStringProperty domain = new SimpleStringProperty();
static SimpleStringProperty FQDN = new SimpleStringProperty();

public static void setName(String string) {
    name.set(string);
}

public static void setDomain(String string) {
    domain.set(string);
}

public static ObservableStringValue getFQDN() {
    FQDN.set(name.get() + "@" + domain.get());
    return FQDN;
}
}

公共类GUI{
TextField name=新的TextField();
TextField domain=新的TextField();
TextField FQDN=新建TextField();
name.textProperty().addListener(新名称更改());
domain.textProperty().addListener(新域更改());
FQDN.textProperty().bind(Data.getFQDN());
}
公共类NameChange实现ChangeListener{
@凌驾

public void changed(observevableValue无法真正理解为什么要将
数据
类中的所有内容都设置为静态,但是:

public class Data {
static StringProperty name = new SimpleStringProperty();
static StringProperty domain = new SimpleStringProperty();
static StringProperty FQDN = new SimpleStringProperty();

static {
    FQDN.bind(Bindings.format("%s@%s", name, domain));
}

public static String setName(String string) {
    name.set(string);
}

public static String setDomain(String string) {
    domain.set(string);
}

public static ObservableStringValue getFQDN() {
    return FQDN;
}
}

谢谢你的帮助,过去几天我一直在寻找答案!
public class DomainChange implements ChangeListener<String> {

@Override
public void changed(ObservableValue<? extends String> observable,
                                                     String oldValue, 
                                                     String newValue) {
    Data.setDomain(newValue);
}
public class Data {
static StringProperty name = new SimpleStringProperty();
static StringProperty domain = new SimpleStringProperty();
static StringProperty FQDN = new SimpleStringProperty();

static {
    FQDN.bind(Bindings.format("%s@%s", name, domain));
}

public static String setName(String string) {
    name.set(string);
}

public static String setDomain(String string) {
    domain.set(string);
}

public static ObservableStringValue getFQDN() {
    return FQDN;
}
}