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)

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() );
                }
            }
        }
    }
Impossible d’accéder a la première condition (si le mdp saisie correspond bien au mdp de la base de donnée.

Voici le resultat en console :

123 étant le mot de passe correspondant a la réponse selectionné

Code : Sélectionner tout - Visualiser dans une fenêtre à part
 123 [C@119721a6 mdp entré : [C@4ec70c4c
probablement le cryptage ici qui ressort deux liste de char différentes, pourtant le mot de passe est le même.

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