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 を返しますString。JavaStringは文字列を比較する代わりにメソッドObjectを使用する必要があります。演算子は、Java でプリミティブ型を比較す​​るために使用されます。これをよりよく理解するには、Java で文字列を比較するにはどうすればよいですか? を参照してください。Java での文字列比較に関する Q/A。 私が言ったように、文字列の空をチェックするために使用できますが、一般的な使用法は次のとおりです。 equals()====
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 に答える