2017-02-14 3 views
0

У меня есть код написанный, но он не совсем работает, но он объясняет, что я хочу, чтобы он делал.(javafx) В настоящее время я создаю приложение, которое требует от людей создания учетной записи, как я могу убедиться, что поля текстов не равны нулю?

Я думаю, что я немного сузил его, он говорит, что я не могу сравнивать строки с == или! =, Что является альтернативой этому? Я изменил свои поля пароля на .equals(), чтобы они работали правильно, однако я не знаю альтернативы для! =.

класс контроллера:

@FXML 
     private void handleCreateAccountContinue(ActionEvent event) throws IOException{ 
      if(NewUsernameFieldC.getText()!=null && NewPasswordFieldC.getText()!=null && NewPasswordFieldC.getText()==NewPasswordConfFieldC.getText() 
        && NewEmailFieldC.getText()!=null && NewSteamlinkFieldC.getText()!=null){ 
       //ADD INFO TO DATABASE 
       System.out.println("correct input"); 
      } 
      else{ 
       System.out.println("incorrect input"); 
      } 
     } 

какие-либо идеи? Спасибо заранее!

ответ

0

Я считаю, что проблема заключается в том, что вы ищете пустое текстовое поле, сравнивая ввод с нулевым. Вместо этого вы должны сравнивать входные данные с «", чтобы увидеть, не было ли введено ничего. Надеюсь, поможет!

+0

это почти работает, но когда нет ничего в одном или нескольких текстовых полей, я все еще получаю первый, если заявление возвращается, а не другое заявление – Tresk33

+0

А я вижу, что вы делаете. Я вижу, как вы ответили выше. Это всегда работает, но если вы хотите, чтобы вы могли использовать || вместо того, чтобы отрицать все разделы &&. –

+0

ой, это очень верно, и это будет иметь больше смысла, я собираюсь изменить это прямо сейчас, спасибо! – Tresk33

0

Я решить мою проблему, вместо того, чтобы делать это

Неправильный пример кода:

@FXML 
     private void handleCreateAccountContinue(ActionEvent event) throws IOException{ 
      if(NewUsernameFieldC.getText()!=null && NewPasswordFieldC.getText()!=null && NewPasswordFieldC.getText()==NewPasswordConfFieldC.getText() 
        && NewEmailFieldC.getText()!=null && NewSteamlinkFieldC.getText()!=null){ 
       //ADD INFO TO DATABASE 
       System.out.println("correct input"); 
      } 
      else{ 
       System.out.println("incorrect input"); 
      } 
     } 

Вы бы сделать это:

@FXML 
    private void handleCreateAccountContinue(ActionEvent event) throws IOException{ 
     if(!NewUsernameFieldC.getText().equals("") && !NewPasswordFieldC.getText().equals("") && NewPasswordFieldC.getText().equals(NewPasswordConfFieldC.getText()) 
       && !NewEmailFieldC.getText().equals("") && !NewSteamlinkFieldC.getText().equals("")){ 
      //ADD INFO TO DATABASE 
      System.out.println("correct output"); 
     } 
     else{ 
      System.out.println("incorrect input"); 
     } 
    } 

Я надеюсь, что это поможет кому-то!

+1

Никогда не сравнивайте 'String' с == or! =. Чтобы проверить, является ли 'String' пустым, используйте метод' .isEmpty() '. – MBec

0

Я всегда проверить длину текста

If(NewUsernameFieldC.getText().length > 0) 
{ 
    //the text field is not null 
} 
+0

Вы также проверяете проверку полей ControlsFx. – Sedrick

1

вы не можете проверить с нулем. Вы должны проверить пустую строку. Также вы должны сравнивать с равными не с «==», поскольку String - это объект. вы будете сравнивать ссылки и не то, что хотите. Вы хотите сравнить текст. Вот почему вы должны использовать равные.

ПРИМЕЧАНИЕ: когда вы пытаетесь проверить, нет ли равных вам просто нужно использовать "!" в начале, когда я это сделал.

@FXML 
private void handleCreateAccountContinue(ActionEvent event) throws IOException{ 
    if(!NewUsernameFieldC.getText().isEmpty() && !NewPasswordFieldC.getText().isEmpty() && NewPasswordFieldC.getText().equals(NewPasswordConfFieldC.getText()) 
      && !NewEmailFieldC.getText().isEmpty() && !NewSteamlinkFieldC.getText().isEmpty()){ 
     //ADD INFO TO DATABASE 
     System.out.println("correct input"); 
    } 
    else{ 
     System.out.println("incorrect input"); 
    } 
}