Interface graphique java
Fermé
lolita-01
Messages postés
90
Date d'inscription
mercredi 5 janvier 2011
Statut
Membre
Dernière intervention
26 juillet 2013
-
1 mai 2012 à 00:32
lolita-01 Messages postés 90 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 26 juillet 2013 - 1 mai 2012 à 02:36
lolita-01 Messages postés 90 Date d'inscription mercredi 5 janvier 2011 Statut Membre Dernière intervention 26 juillet 2013 - 1 mai 2012 à 02:36
A voir également:
- Interface graphique java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Changer carte graphique - Guide
- Java apk - Télécharger - Langages
- Télécharger jeux java gameloft gratuit - Forum Mobile
3 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
1 mai 2012 à 01:31
1 mai 2012 à 01:31
C'est surement parce que tu ne laisses pas de temps à l'utilisateur pour rentrer le mot de passe ! Dès que c'est créé, tout de suite tu vérifies, c'est idiot ! Ce qu'il faudrait c'est mettre les JPasswordField en dehors de l'ActionListener ...
Ensuite tu utilises getText() comme une méthode static qu'elle n'est pas, soit tu l'utilises sur MPS qoit sur P2 (remarques : les noms de variables devraient être en minuscules) mais pas sur JPasswordField. De toute façon getText() est dépréciée, il faut utiliser getPassword() à la place, en faisant attention car elle renvoie un char[] et non un String.
Enfin, en supposant que tu veuilles bien utiliser equalsIgnoreCase (dont l'intérêt est douteux pour un mot de passe), il est totalement inutile sur une chaîne vide "", autant directement tester la taille de la chaîne de caractères !
Remarque : il est toujours inutile de faire un test bidule==true, tu peux toujours remplacer ça directement par bidule et avoir le même résultat.
Par contre l'ordre dans le && est important, car les conditions sont exécutées de gauche à droite, il vaut donc mieux mettre les tests les plus simples en premier, ce qui évite de faire des calculs coûteux pour un résultat qui sera de toute façon si le test simple échoue.
Pour conclure, vu le nombre d'erreurs (souvent graves) pour aussi peu de lignes, je ne peux que te conseiller de revoir TRÈS rapidement tes cours, et consulter quelques tutoriels ici, ou là...
Ensuite tu utilises getText() comme une méthode static qu'elle n'est pas, soit tu l'utilises sur MPS qoit sur P2 (remarques : les noms de variables devraient être en minuscules) mais pas sur JPasswordField. De toute façon getText() est dépréciée, il faut utiliser getPassword() à la place, en faisant attention car elle renvoie un char[] et non un String.
Enfin, en supposant que tu veuilles bien utiliser equalsIgnoreCase (dont l'intérêt est douteux pour un mot de passe), il est totalement inutile sur une chaîne vide "", autant directement tester la taille de la chaîne de caractères !
Remarque : il est toujours inutile de faire un test bidule==true, tu peux toujours remplacer ça directement par bidule et avoir le même résultat.
Par contre l'ordre dans le && est important, car les conditions sont exécutées de gauche à droite, il vaut donc mieux mettre les tests les plus simples en premier, ce qui évite de faire des calculs coûteux pour un résultat qui sera de toute façon si le test simple échoue.
final JRadioButton jRadioButton1 = // ... final JPasswordField mps = new JPasswordField(); final JPasswordField p2 = new JPasswordField("secret"); ActionListener ecouteurB1= new ActionListener () { public void actionPerformed(ActionEvent e) { if (mps.getPassword().length==0) JOptionPane.showMessageDialog(null,"Veuillez saisir votre mot de passe !"); else if (jRadioButton1.isSelected() && Arrays.equals(mps.getPassword(), p2.getPassword())) JOptionPane.showMessageDialog(null,"mot de passe valide !"); else JOptionPane.showMessageDialog(null,"Veuillez vérifier !"); } }; jButton1.addActionListener(ecouteurB1);
Pour conclure, vu le nombre d'erreurs (souvent graves) pour aussi peu de lignes, je ne peux que te conseiller de revoir TRÈS rapidement tes cours, et consulter quelques tutoriels ici, ou là...
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 291
1 mai 2012 à 01:35
1 mai 2012 à 01:35
C'est quoi ça ?
if ( JPasswordField.getPassword().equals(P2)&& JRadioButton1.isSelected()==true )
A priori tu compares un type avec une donnée.
Je verrais plutôt :
if ( MPS.getPassword().equals(P2.getPassword()) && RadioButton1.isSelected() == true )
Même si je ne vois pas trop pourquoi tu définis des JPasswordField dans ton ActionListener puisque je suppose que ces champs existent déjà dans ta GUI bien avant l'appui sur le bouton. Donc l'ActionListener devrait juste comparer la valeur de champs existants dans ton formulaire.
if ( JPasswordField.getPassword().equals(P2)&& JRadioButton1.isSelected()==true )
A priori tu compares un type avec une donnée.
Je verrais plutôt :
if ( MPS.getPassword().equals(P2.getPassword()) && RadioButton1.isSelected() == true )
Même si je ne vois pas trop pourquoi tu définis des JPasswordField dans ton ActionListener puisque je suppose que ces champs existent déjà dans ta GUI bien avant l'appui sur le bouton. Donc l'ActionListener devrait juste comparer la valeur de champs existants dans ton formulaire.
lolita-01
Messages postés
90
Date d'inscription
mercredi 5 janvier 2011
Statut
Membre
Dernière intervention
26 juillet 2013
1 mai 2012 à 02:36
1 mai 2012 à 02:36
merci pour vos réponses :))