Bonjour à toutes et tous,
Je suis en train de développer un Quizz en Java.
Pour accéder a la question suivante, mon programme a besoin d'un mot de passe valide que l'utilisateur cherchera dans le bâtiment selon le numero de checkpoint donnée.
Les premières étapes ont été réalisé (Afficher la question, les reponses, et le numero de checkpoint de la base de donnée selon la reponse donnée par l'utilisateur).
Cependant j'ai quelque soucis avec l'outil jpasswordfield.
En effet, il est impossible de vérifier une condition.
Je passe a ma methode une List de password et essaye de comparer le mot de passe actuelle avec le password saisie.
(Mon application respecte le model MVC2)
Impossible d’accéder a la première condition (si le mdp saisie correspond bien au mdp de la base de donnée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 @Override public void checkPwd(ArrayList<T_Password> p) { if (p == null) { System.out.println("Y U DON'T SHOW URSELF ??? : " + p); } else { for (T_Password pwd : p) { System.out.println(pwd.getPassword()); ); jPasswordField = new JPasswordField(); char[] monMdp = jPasswordField.getPassword(); String converti = monMdp.toString(); if (converti.equals(pwd.getPassword())) { JOptionPane.showMessageDialog(rootPane, "Good Job ! You'll now access to next question "); refCtrl.suivant(); } else if (converti != pwd.getPassword()) { JOptionPane.showMessageDialog(rootPane, "Bad Answer, this time U HAVE TO think ! "); System.out.println(pwd.getPassword() + " " + monMdp + " mdp entré : " + jPasswordField.getPassword() ); } } } }
Voici le resultat en console :
123 étant le mot de passe correspondant a la réponse selectionné
probablement le cryptage ici qui ressort deux liste de char différentes, pourtant le mot de passe est le même.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 123 [C@119721a6 mdp entré : [C@4ec70c4c
Avez-vous une idée pour comparer ces chars de manière propre ?
(Je veux comparer le mot de passe saisie dans le JPAsswordField avec le mot de passe de ma base de donnée, chaque reponse a un mot de passe et un numero de checkpoint)
Je voudrais éviter d'utiliser la méthode getText car elle est déprécier
tandis que getPassword() ressort une arrayList de char.
Est-il plus propre de garder une arrayList de char ?
Comment comparer ces deux éléments et ainsi accéder à la premiere condition dans ma boucle ?
je vous remercie de votre soutien.
RetributionX
Partager