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 :

associer un Jbutton a un JPasswordField


Sujet :

AWT/Swing Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 19
    Points : 9
    Points
    9
    Par défaut associer un Jbutton a un JPasswordField
    Bonsoir,

    Mon probleme c'est que je veux recuperer un objet JPasswordField lorsque j'appui sur un button .

    Ma fonction " public void actionPerformed(ActionEvent oEvent) " qui va recuperer les actions me permet bien de recuperer mon objet JPasswordField
    quand je clic sur "Entrer" dans la saisie du mot de passe par exemple, mais je n'arrive pas a associer l'évenement d'un bouton (un bouton "ok" ) a un autre objet (ici ca serait un JPasswordField )

    ps : ma fonction public void actionPerformed(ActionEvent oEvent) ne se situe pas dans la meme classe que celle ou je crée mon JPasswordField.

    j'espere avoir été assez claire.

    Merci d'avance a tous.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Si la question n'est pas claire dites moi le svp

    Merci

  3. #3
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Bonjour,
    ben je dirais qu'il faut que la classe qui implémente ActionListener aie une référence sur celle qui contient le JPasswordField, non ? Ou déplacer l'actionPerformed dans la classe qui contient le JPasswordField.
    "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.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Justement c'est ce que je veux pas faire.

    Je veut garder mon objet JPasswrdField dans une classe et le listener dans une autre.

  5. #5
    Membre averti Avatar de let_me_in
    Inscrit en
    Mai 2005
    Messages
    441
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 441
    Points : 437
    Points
    437
    Par défaut
    un bout de code stp(juste les parties interessantes).
    qui dit Dieu n'existe pas dis que les programmes tournent sans processeur.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    ok

    Par exemple ds une class IHM


    //*********IHM **********/
    public class IHM
    {
    public IHM(ActionListener oActionListener)
    {
    JFrame oJFrame = new JFrame();

    JPasswordField oJPasswordField = new JPasswordField();
    oJPasswordField.setActionCommand("mon jpassword");
    oJPasswordField.addActionListener(oActionListener);
    oJPasswordField.setEchoChar ('*');

    oJFrame.getContentPane().add(oJPasswordField);
    oJFrame.setVisible(true);
    }
    }
    //********* FIN IHM **********/
    et puis dans une autre class :


    //*********LISTENER **********/
    public class Listener implements ActionListener
    {
    public void actionPerformed(ActionEvent oEvent)
    {
    if oEvent.getActionCommand().equals("mon password")
    {
    //alors je le recupere

    }
    }
    }

    //*********FIN LISTENER**********/
    et donc ds un main tu as par exemple :

    public static void main(String[] args)
    {
    Listener oListener = new Listener();
    new IHM(oListener);
    }

    voila
    un peut de code
    je n'est pas mis mon vrai code car ca ne servirai qu'a alourdir .

    Je rajoute que cela marche quand j'appui sur "Enter" dans la saisie du mot de passe, mais que moi je veux surtout recuperer la meme chose mais seulement quand un utilisateur appui sur un bouton.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    personne pour m'aider ?

  8. #8
    Membre émérite
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Points : 2 410
    Points
    2 410
    Par défaut
    Premièrement, merci.

    Alors, ce que je te proposais avant c'était de faire des références croisées, mais tu peux simplement accéder au JPasswordField avec ActionEvent#getSource() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void actionPerformed(ActionEvent e) {
        JPasswordField jpf = (JPasswordField) e.getSource();
    }
    "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.

  9. #9
    Membre habitué Avatar de White Rabbit
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 122
    Points : 148
    Points
    148
    Par défaut
    Un peu de code, largement pompé sur le tuto MultiListener en bas de la page.

    Le listener.
    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
     
    import java.awt.event.*;
    import javax.swing.*;
     
    public class GUIListener implements ActionListener {
     
       private JPasswordField password;
    	private JButton        button;
     
       public GUIListener(JPasswordField jpf, JButton jb) { // C'est ici que la magie opère...
    	   password = jpf;
    		button   = jb;
      	}
     
    	public void actionPerformed(ActionEvent e) {
    	   button.setText(String.valueOf(password.getPassword())); // Atention getPassword retourne un char[]
    	}
    }
    Le gui.
    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
     
    import java.awt.*;
    import javax.swing.*;
     
    public class GUI {
       private JFrame         f;
    	private JPanel         p;
       private JPasswordField pf;
    	private JButton        b;
     
    	public GUI() {
    	  f  = new JFrame();
    	  p  = new JPanel();
    	  pf = new JPasswordField(20);
    	  b  = new JButton("Cliques et tu verras !");
     
    	  p.setLayout(new FlowLayout());
    	  p.add(pf);
    	  p.add(b);
     
    	  f.getContentPane().add(p);
     
    	  b.addActionListener(new GUIListener(pf, b)); //  La magie continue...
     
    	  f.pack();
    	  f.setVisible(true);
    	}
    }
    Les sources

  10. #10
    Membre habitué Avatar de White Rabbit
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 122
    Points : 148
    Points
    148
    Par défaut
    Citation Envoyé par xavlours
    Premièrement, merci.

    Alors, ce que je te proposais avant c'était de faire des références croisées, mais tu peux simplement accéder au JPasswordField avec ActionEvent#getSource() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void actionPerformed(ActionEvent e) {
        JPasswordField jpf = (JPasswordField) e.getSource();
    }
    La source n'est pas le JPasswordField mais le JButton

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    Effectivement si on saisie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public void actionPerformed(ActionEvent e) {
    JPasswordField jpf = (JPasswordField) e.getSource();
    }
    et si on clic sur un bouton on va recupérer un bouton et non un JPasswordField sauf si on appui entrer quand on saisie le mot de passe.

    Sinon je vais garder une reference sur un objet JPasswordField
    comme tu me l as dit xavlours et comme je peux le voir sur le code que White Rabbit a donné.

    En fait je croyais que l'on pouvait eviter d'avoir une reférence de l'objet dans le listener .
    C'est pas grave c'est déja bien je vais pas me prendre le choux pour ca !!

    En tout cas merci a vous deux .
    +

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Liste associée a un JButton
    Par scipionh dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 28/04/2009, 15h56
  2. Associer un evenement a plusieurs JButton
    Par nzo70 dans le forum Composants
    Réponses: 1
    Dernier message: 28/12/2008, 14h24
  3. enlever une Action associée à un JButton
    Par tanguy.L dans le forum Composants
    Réponses: 3
    Dernier message: 05/05/2008, 10h41
  4. Réponses: 25
    Dernier message: 11/01/2007, 22h00
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

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