Interface graphique java
lolita-01
Messages postés
90
Date d'inscription
Statut
Membre
Dernière intervention
-
lolita-01 Messages postés 90 Date d'inscription Statut Membre Dernière intervention -
lolita-01 Messages postés 90 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
je ne comprend pas ou est ma faute je veux que ce code compare entre le mot de passe saisie dans l'interface graphique et le code que j'ai défini ="secret"
ActionListener EcouteurB1= new ActionListener ()
{
public void actionPerformed(ActionEvent arg0)
{
JPasswordField MPS = new JPasswordField();
JPasswordField P2 = new JPasswordField("secret");
if (JPasswordField.getText().equalsIgnoreCase(""))
JOptionPane.showMessageDialog(null,"Veuillez saisir votre mot de passe!!");
else
if ( JPasswordField.getPassword().equals(P2)&& JRadioButton1.isSelected()==true )
JOptionPane.showMessageDialog(null,"mot de passe valide!");
else
JOptionPane.showMessageDialog(null,"Veuillez vérifier!!");
}
};
jButton1.addActionListener(EcouteurB1);
Volia! le probléme c'est qu'il ne compare pas il m'affiche toujours Veuillez vérifier!
Aidez moi svp
je ne comprend pas ou est ma faute je veux que ce code compare entre le mot de passe saisie dans l'interface graphique et le code que j'ai défini ="secret"
ActionListener EcouteurB1= new ActionListener ()
{
public void actionPerformed(ActionEvent arg0)
{
JPasswordField MPS = new JPasswordField();
JPasswordField P2 = new JPasswordField("secret");
if (JPasswordField.getText().equalsIgnoreCase(""))
JOptionPane.showMessageDialog(null,"Veuillez saisir votre mot de passe!!");
else
if ( JPasswordField.getPassword().equals(P2)&& JRadioButton1.isSelected()==true )
JOptionPane.showMessageDialog(null,"mot de passe valide!");
else
JOptionPane.showMessageDialog(null,"Veuillez vérifier!!");
}
};
jButton1.addActionListener(EcouteurB1);
Volia! le probléme c'est qu'il ne compare pas il m'affiche toujours Veuillez vérifier!
Aidez moi svp
A voir également:
- Interface graphique java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel - Télécharger - Jeux vidéo
- Changer carte graphique - Guide
- Eclipse java - Télécharger - Langages
- Java apk - Télécharger - Langages
3 réponses
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à...
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.