1

我有以下JavaFX代码:

final TextField textField = new TextField();

EventHandler<ActionEvent>检查 textField 是否为空。问题是textField.getText() == null或者textField.getText() == ""两者都返回false,但我没有在该字段中打印任何内容,所以它应该返回 true 。


final TextField textField = new TextField();
browse.setOnAction(new EventHandler() {
    @Override
    public void handle(ActionEvent actionEvent) {
        FileChooser fileChooser = new FileChooser();
        File chFile = fileChooser.showOpenDialog(stage);
        if (chFile != null) {
            // some code
            if (textField.getText() != null && textField.getText() != "") {
                // some code
            }
        }
    }
});
4

2 回答 2

5

返回textField.getText()一个 java 。StringJavaString是一个Object所以你应该使用equals()方法而不是==比较字符串。==运算符用于比较 Java 中的原始类型。为了更好地理解这一点,请查看如何在 Java 中比较字符串?Java中字符串比较的Q/A。
正如我所说,您可以使用它textField.getText().equals("")来检查字符串的空性,但它的常见用法是:

     if (textField.getText() != null && ! textField.getText().trim().isEmpty()) {
          // some code
     }

!布尔 NOT 运算符在哪里。也不是trim()方法。这是为了检查用户是否只输入了空格,然后将它们视为空值。否则检查空格equals("")将失败。

于 2012-05-03T08:52:15.927 回答
-1
if(textfield.getText().trim().length>0)
//do Something
else
//can't be blank
于 2014-03-11T10:53:55.213 回答