如果TextField为空,如何禁用按钮?

时间:2019-02-16 22:25:37

标签: if-statement javafx text textfield

我无法禁用我的按钮。 “接受” =按钮,“电子邮件” = textField。

email.setOnAction(new EventHandler<ActionEvent>() {

    @Override
    public void handle(ActionEvent event) 
    {
        if(email.getText().isEmpty() == false)
        {
            accept.setDisable(false);

        }else accept.setDisable(true);
    }
});

如果我在textField中写的话那没什么。

3 个答案:

答案 0 :(得分:4)

按照Zephyr的回答,您可以将其直接绑定到您的按钮内:

button1.disableProperty().bind(Bindings.isEmpty(textField1.textProperty()));

或者如果您想在多个文本字段为空时禁用按钮:

button1.disableProperty().bind(
    Bindings.isEmpty(textField1.textProperty())
        .or(Bindings.isEmpty(textField2.textProperty()))
        .or(Bindings.isEmpty(textField3.textProperty()))
);

答案 1 :(得分:1)

您可以使用绑定到BooleanBinding的{​​{1}}的简单Button。只需两行代码即可完成此操作:

disabledProperty

您可以使用下面的MCVE进行查看:

BooleanBinding isTextFieldEmpty = Bindings.isEmpty(textField.textProperty());
button.disableProperty().bind(isTextFieldEmpty);

答案 2 :(得分:1)

按照 miKel 的回答,您可以定义按钮的disable属性,而无需导入Bindings类:

button1.disableProperty().bind(
    textField1.textProperty().isEmpty() 
    .or(textField2.textProperty().isEmpty())
    .or(textField3.textProperty().isEmpty())
);