[JOptionPane][JPasswordField]pb avec le focus
voilà j'aimerai utiliser un JOptionPane pour recuperer un mot de passe. Le problème vient du fait que je n'arrive pas a mettre le focus sur le bouton ok (et ainsi permettre la validation avec entree). J'aimerai également que le JPasswordField soit quand meme en mode edition au moment de la creation du JOptionPane
Code:
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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| // demande de mdp
Object[] message = new Object[2];
message[0] = "Saisissez votre mot de passe"; //Message apparaîssant dans le corps du dialog
message[1] = new JPasswordField ();
Object option[] = {"OK", "Annuler"}; // Options (nom des boutons)
int result = JOptionPane.showOptionDialog(
this, // fenêtre parente
message, // corps du dialogue
"Mot de passe",// Titre du dialogue
JOptionPane.DEFAULT_OPTION, // type de dialogue
JOptionPane.QUESTION_MESSAGE, // type icone
null, // icône optionnelle
option, // boutons
option // objet ayant le focus par défaut
);
if(result == 0)
s = new String(((JPasswordField )message[1]).getPassword());
// tant que mdp incorrect
while (!CtrlDB.getInstance().login(s)) {
// si l'utilisateur n'annule pas
if (result == 0) {
// demande de mdp
JOptionPane.showMessageDialog(this,"Mot de passe incorrect" +'\n'
,"erreur",JOptionPane.ERROR_MESSAGE);
((JPasswordField)message[1]).setText("");
result = JOptionPane.showOptionDialog(
this, // fenêtre parente
message, // corps du dialogue
"Mot de passe",// Titre du dialogue
JOptionPane.DEFAULT_OPTION, // type de dialogue
JOptionPane.QUESTION_MESSAGE, // type icone
null, // icône optionnelle
option, // boutons
option[0] // objet ayant le focus par defaut
);
if(result == 0) {
s = new String(((JPasswordField )message[1]).getPassword());
}
} else return; |
Voila dois je concevoir ma propre classe ou est ce possible de garder ce code ? merci d'avance