2017-02-14 1 views
0

J'ai du code écrit mais ça ne marche pas exactement mais ça explique ce que je veux faire.(javafx) Je suis en train de faire une application qui demande aux gens de créer un compte, comment puis-je m'assurer que les champs textes ne sont pas nuls?

Je pense que je l'ai réduit un peu, il est dit que je ne peux pas comparer les chaînes avec == ou! =, Quelle est une alternative à cela? J'ai changé mes champs de mot de passe pour .equals() afin qu'ils fonctionnent correctement, mais je ne connais pas une alternative pour! =.

classe contrôleur:

@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"); 
      } 
     } 

des idées? Merci d'avance!

Répondre

0

Je crois que le problème est que vous recherchez des champs de texte vides en comparant l'entrée à null. Vous devriez plutôt comparer l'entrée à "" pour voir si rien n'a été entré. J'espère que cela aide!

+0

cette presque fonctionne mais quand il n'y a rien dans l'un ou plusieurs des champs de texte que je reçois toujours la première instruction if retourné et non l'instruction else – Tresk33

+0

Ah je vois ce que vous faisiez. Je vois comment tu as répondu ci-dessus. Cela fonctionne toujours mais si tu voulais tu aurais pu utiliser || au lieu de nier toutes les sections &&. –

+0

oh oui, c'est très vrai et cela aurait plus de sens, je vais changer ça maintenant, merci! – Tresk33

0

Je l'ai résolu mon problème, au lieu de le faire

exemple de code erroné:

@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"); 
      } 
     } 

Vous devez faire cela:

@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"); 
     } 
    } 

J'espère que cela aide quelqu'un!

+1

Ne jamais comparer 'String' avec == ou! =. Pour vérifier si 'String' est vide, utilisez la méthode' .isEmpty() '. – MBec

0

J'ai toujours vérifier la longueur du texte

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

Vous allez également vérifier la validation des champs ControlsFx. – Sedrick

1

Vous ne pouvez pas vérifier avec null. Vous devriez vérifier la chaîne vide. Aussi, vous devriez comparer avec égal à pas avec "==" puisque String est un objet. vous allez comparer des références et ce n'est pas ce que vous voulez. Vous voulez comparer le texte. c'est pourquoi vous devriez utiliser des égales. REMARQUE: lorsque vous essayez de vérifier si n'est pas égal, vous avez juste besoin d'utiliser le "!" au début comme je l'ai fait.

@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"); 
    } 
}