什么是TextField的“内部”

时间:2012-05-02 20:44:39

标签: validation javafx

我有以下 JavaFX 代码:

final TextField textField = new TextField();

EventHandler<ActionEvent>检查textField是否为空。问题是textField.getText() == nulltextField.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
            }
        }
    }
});

2 个答案:

答案 0 :(得分:5)

textField.getText()返回java String。 Java StringObject,因此您应该使用equals()方法而不是==来比较字符串。 ==运算符用于比较Java中的基元类型。要更好地理解这一点,请查看此How do I compare strings in Java? Q / A以获取Java中的字符串比较 正如我所说,您可以使用textField.getText().equals("")来检查String空白,但它的常见用法是:

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

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

答案 1 :(得分:-1)

if(textfield.getText().trim().length>0)
//do Something
else
//can't be blank