Bonjours,
J'esseyais depuis quelques temps de definir un JPasswordField afin de remplacer mon pathétique :
par un plus sophistiqué
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 JTextField myPassword=new JTextField();
Mais une fois la password donné, je devais l'utiliser pour fabriquer mon url JDBC. Et la, la méthode myPassword.getPassword() me retournait la version cryptée. Idem si j'utilisais la fonction myPassword.getTExt(), c'etait toujours la version cryptée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 JPasswordField myPassword=new JPasswordField();
La solution pour que le password apparaisse cryptée à l'ecran mais fournisse un string en clair avec myPassword.getTExt() passe par :
Et là, je ne comprend pas: mypassword est bien un JTextField, donc que le getText() me retourne un String clair, ok.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 private JTextField myPassword= new JPasswordField();
Mais pourquoi alors la fonction de crytpage à l'écran fonctionne ? Après tout 'myPassword' est un JTextField.
Et plus généralement, comment savoir qu'elle seront les future propriété d'une variable d"'un type classe instantiée quand on fait une declaration du genre:
Qu'elle seront les fonctionalités de myVar qui seront du type Ancetre ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Ancetre myVar = new DerieveAncetre() ;
Dans ce cas qui nous occupe, On pourrait dire que pour toutes les fonctions qui sont définie dans JTextField et JPasswordField, ce sont les fonctions de JTextFied qui seront reprise et si une fonction n'est pas definie dans JTextField mais existe dans JPasswordField, alors cette fonctions aussi est dispo.
Ainsi j'explique pourquoi l'input a l'ecran est crypté.
Helas, si ce raisonnement etait correct, alors la fonctionalité qui crypte le password, aurait du crypter aussi bien pour le display (ce qu'elle fait) que le getText (ce qu'elle ne fait pas).
Du coup, je suis un peu perdu et je comprend que je ne comprend pas réellement cette déclaration "JTextField var=new JPasswordField()"![]()
Partager