2012-05-02 10 views
1

は、私は、次のJavaFXのコードを持っている「内側」とは。問題は、textField.getText() == nullまたはtextField.getText() == ""の両方がfalseを返しますが、そのフィールドには何も印刷されないため、trueを返す必要があります。は、TextField


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 
      } 
     } 
    } 
}); 
+0

[Javaの文字列を比較するにはどうすればよいですか](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) –

答えて

5

textField.getText()は、java Stringを返します。 Java StringObjectなので、==の代わりにequals()メソッドを使用して文字列を比較する必要があります。 ==演算子は、Javaのプリミティブ型を比較す​​るために使用されます。これをより良く理解するには、Javaでの文字列比較のためにこのHow do I compare strings in Java? Q/Aをご覧ください。
私はあなたが文字列の虚しさをチェックするためtextField.getText().equals("")を使用することができますが、それのための一般的な使い方は言ったように:!は、ブール演算子NOTである

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

。また、trim()メソッドもありません。これは、ユーザが空白を入力したかどうかをチェックするためのもので、空の値として扱います。さもなければ、equals("")で空白をチェックすることは失敗します。