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 :

probleme de listener d'un bouton


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
    Mai 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 15
    Par défaut probleme de listener d'un bouton
    salut a tous. alors voila, j'ai un gros probleme... pour un projet de fin d'année, je devais creer un programme. je vous passer tous les details mais dans ce programme, je devais pouvoir ajouter, et modifier des utilisateurs.
    seulement j'ai un prob pour un bouton "modifier utilisateur". voici le message d'erreur.
    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
     
     
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
            at Service2$1ListenerModifierUser.actionPerformed(Service2.java:122)
            at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
            at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
            at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
            at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
            at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Sour
    ce)
            at java.awt.Component.processMouseEvent(Unknown Source)
            at javax.swing.JComponent.processMouseEvent(Unknown Source)
            at java.awt.Component.processEvent(Unknown Source)
            at java.awt.Container.processEvent(Unknown Source)
            at java.awt.Component.dispatchEventImpl(Unknown Source)
            at java.awt.Container.dispatchEventImpl(Unknown Source)
            at java.awt.Component.dispatchEvent(Unknown Source)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
            at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
            at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
            at java.awt.Container.dispatchEventImpl(Unknown Source)
            at java.awt.Window.dispatchEventImpl(Unknown Source)
            at java.awt.Component.dispatchEvent(Unknown Source)
            at java.awt.EventQueue.dispatchEvent(Unknown Source)
            at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
            at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
            at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
            at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
            at java.awt.EventDispatchThread.run(Unknown Source)

    qqn aurait une idée du prob? parce que ca fait un jour que je bloque dessus :s
    s'il faut, je peux fournir le code pour vous aider...

  2. #2
    Membre confirmé Avatar de ferrero
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2003
    Messages : 75
    Par défaut
    s'il faut, je peux fournir le code pour vous aider...
    oui un bout de code sera le bienvenu

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 15
    Par défaut
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.awt.GridLayout.*;
     
    public class Service2
    {
        private JPanel panelP;
        private JPanel panelH;
        private JPanel panelB;
        private JTextField name2;
        private JTextField prenom2;
        private JTextField nomText;
        private JTextField prenomText;
        private JTextField loginText;
        private JTextField passText;
        private JTextField idText;
        private JTextField mailText;
        private JButton buttonModif;
        private JButton button1;
     
     
        public Service2()
        {
    	panelP = new JPanel();
    	panelH = new JPanel();
    	panelB = new JPanel();
    	buttonModif = new JButton("Modifier l'utilisateur");
    	button1 = new JButton("Ok");
        }
     
        public JPanel getService()
        {
    	panelH.setLayout(new GridLayout(4,1));
    	panelP.setLayout(new GridLayout(2,1));
     
    	final JLabel name = new JLabel("Entrez le nom de l'utilisateur à modifier");
    	final JLabel prenom = new JLabel("Entrez le prenom de l'utilisateur à modifier");
     
    	name2 = new JTextField();
    	prenom2 = new JTextField();
     
    	panelH.add(name);
    	panelH.add(name2);
    	panelH.add(prenom);
    	panelH.add(prenom2);
    	panelB.add(button1);
    	panelP.add(panelH);
    	panelP.add(panelB);
     
    	class OkListener implements ActionListener
    	{
    	    public void actionPerformed(ActionEvent event)
    	    {
    		if(ListeUtilisateur.isInTheList(name2.getText(),prenom2.getText()))
    		    {
    			JLabel label1 = new JLabel("Nom :");
    			JLabel label2 = new JLabel("Prenom :");
    			JLabel label3 = new JLabel("Faculte :");
    			JLabel label4 = new JLabel("Section :");
    			JLabel label5 = new JLabel("Mail :");
    			JLabel label6 = new JLabel("Login :");
    			JLabel label7 = new JLabel("PassWord :");
    			JLabel label8 = new JLabel("ID :");
     
    			JTextField nomText = new JTextField();
    			JTextField prenomText = new JTextField();
    			JTextField faculteText = new JTextField();
    			JTextField sectionText = new JTextField();
    			JTextField mailText = new JTextField();
    			JTextField loginText = new JTextField();
    			JTextField passText = new JTextField();
    			JTextField idText = new JTextField();
     
    			panelP.removeAll();
    			panelH.removeAll();
    			panelB.removeAll();
     
    			panelP.setLayout(new GridLayout(2,1));
    			panelH.setLayout(new GridLayout(16,1));
     
    			panelH.add(label1);
    			panelH.add(nomText);
    			panelH.add(label2);
    			panelH.add(prenomText);
    			panelH.add(label3);
    			panelH.add(faculteText);
    			panelH.add(label4);
    			panelH.add(sectionText);
    			panelH.add(label5);
    			panelH.add(mailText);
    			panelH.add(label6);
    			panelH.add(loginText);
    			panelH.add(label7);
    			panelH.add(passText);
    			panelH.add(label8);
    			panelH.add(idText);
     
    			panelB.add(buttonModif);
     
    			panelH.updateUI();
    			panelB.updateUI();
    			panelP.add(panelH);
    			panelP.add(panelB);
     
    			panelP.updateUI();
    		    }
    		else
    		    {
    			JOptionPane.showMessageDialog(null, "Le nom ou le prénom entré est incorrect", "Erreur", JOptionPane.ERROR_MESSAGE);
    		    }
    	    }
    	}
     
            ActionListener okListener = new OkListener();
    	button1.addActionListener(okListener);	
     
    	class ListenerModifierUser implements ActionListener
    	{
    	    public void actionPerformed(ActionEvent event)
    	    {
    		(GuiLogin.lu).modifyUtilisateur(name2.getText(), prenom2.getText(), loginText.getText(), passText.getText(), idText.getText(), nomText.getText(), prenomText.getText(), mailText.getText());
    		System.out.println("test reussi");
    	    }
    	}
     
    	ActionListener listenerModifierUser = new  ListenerModifierUser();
    	buttonModif.addActionListener(listenerModifierUser);
     
    	return panelP;
        }
    }



    voici la classe entiere. en fait, il y a d'abord 2 textfield qui permettent d'entrer un nom et un prenom. on clique sur ok. puis on a plusieurs textfield qui permettent de modifier les caracteristiques de l'etudiant. et c'est quand je clique sur le bouton "modifier l'etudiant" que ca me met le message d'erreur...
    j'ai testé qq trucs, et j'ai trouvé que c'etait la ligne suivant qui posait prob :

    buttonModif.addActionListener(listenerModifierUser);

    mais aucune idée pq... y aurait-il une solution a mon probleme??
    merci bcp

  4. #4
    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,

    remplace simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JTextField nomText = new JTextField();
    par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomText = new JTextField();
    Et de même pour tous les JTextFields. Dans l'état actuel des choses, tu crées un autre JTextField qui s'appelle lui aussi nomText et qui masque this.nomText. Mais l'attribut nomText n'est jamais initialisé, et lorsque tu appelles nomText.getText() dans actionPerformed, tu as une NullPointerException.
    "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.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 15
    Par défaut
    grrr l'erreur de débutant lol a mon avis j'suis trop absorbé dedans :s
    enfin merci bcp maintenant ca marche :d merci bien
    ciao ciao

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

Discussions similaires

  1. probleme d'éxécution d'un bouton
    Par darkspoilt dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/05/2007, 17h47
  2. Probleme Thread, Listener, Random Java
    Par monicaCruZ dans le forum Concurrence et multi-thread
    Réponses: 5
    Dernier message: 25/05/2007, 15h56
  3. question sur listener d'un bouton
    Par jayjay.f dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 28/04/2007, 15h18
  4. Réponses: 5
    Dernier message: 12/01/2006, 15h47
  5. [VB.Net] Problème appel fonction par un bouton
    Par balibo dans le forum ASP.NET
    Réponses: 4
    Dernier message: 25/11/2005, 10h48

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