IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AWT/Swing Java Discussion :

[JOptionPane][JPasswordField]pb avec le focus


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 19
    Par défaut [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 : 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
    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

  2. #2
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Bonjour,

    Pour pouvoir être en mode édition, le JPasswordField a besoin d'avoir le focus. Impossible donc de donner le focus au JButton et d'espérer que les évènements clavier soient reçus par le JPasswordField.

    Une solution serait d'ajouter un ActionListener au JPasswordField. L'ActionListener réagit à l'appui sur la touche entrée lorsque le JPasswordField a le focus. Pour faire ça, il faudra sûrement passer par l'usage direct (cf javadoc, paragraphe Direct use :).

    Sinon, concevoir ta propre classe est peut-être aussi simple.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/01/2008, 20h46
  2. Sélection des données d'un champ avec le focus de la souris
    Par Nerva dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 13/12/2005, 15h23
  3. Pb avec le focus
    Par inddzen dans le forum Windows
    Réponses: 4
    Dernier message: 25/10/2005, 15h53
  4. [VB.NET] Comment récupérer le nom d'un control avec le focus
    Par jayce007 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 20/01/2005, 00h53
  5. [Creation composant visuel] Problème avec le focus
    Par Ingham dans le forum Composants VCL
    Réponses: 9
    Dernier message: 23/09/2004, 16h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo