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 :

Problème avec un ListSelectionListener


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Avatar de Orian
    Inscrit en
    Août 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Août 2006
    Messages : 372
    Par défaut Problème avec un ListSelectionListener
    Bonsoir,

    Lors de l'initialisation de ma classe (un JDialog contenant une JList), j'ai une Exception :

    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
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
            at gui.dialog.NewFileWizard2.<init>(NewFileWizard2.java:246)
            at action.Dialog.showNewFileWizard(Dialog.java:40)
            at gui.dialog.NewFileWizard1$4.actionPerformed(NewFileWizard1.java:240)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
            at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
            at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
            at java.awt.Component.processMouseEvent(Component.java:5488)
            at javax.swing.JComponent.processMouseEvent(JComponent.java:3126)
            at java.awt.Component.processEvent(Component.java:5253)
            at java.awt.Container.processEvent(Container.java:1966)
            at java.awt.Component.dispatchEventImpl(Component.java:3955)
            at java.awt.Container.dispatchEventImpl(Container.java:2024)
            at java.awt.Component.dispatchEvent(Component.java:3803)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
            at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
            at java.awt.Container.dispatchEventImpl(Container.java:2010)
            at java.awt.Window.dispatchEventImpl(Window.java:1774)
            at java.awt.Component.dispatchEvent(Component.java:3803)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
            at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
            at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
    J'ai découvert que cela veneai de mon ListSelectionListener dont voici le code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //Si on selectionne un objet dans la liste
            lstActivite.addListSelectionListener(new ListSelectionListener() {
                public void valueChanged(ListSelectionEvent e) {
     
                    // Recupere la valeur de l'objet et la convertit en chaine'
                    String value = String.valueOf(lstActivite.getSelectedValue());
                    // place la valeur dans le champs valeur
                    fldValeur.setText(value);
     
                } 
     
            });
    J'utlise un DefaultListModel, et je pense que ça vient de là car quand j'utilise un AbstractListModel tout se passe sans problème.
    Hors, j'ai d'un DefaultListModel afin de pouvoir ajouter des éléments à ma JList.

    Merci de bien vouloir m'éclairer

  2. #2
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    Citation Envoyé par Orian
    J'utlise un DefaultListModel, et je pense que ça vient de là car quand j'utilise un AbstractListModel tout se passe sans problème.
    Hors, j'ai d'un DefaultListModel afin de pouvoir ajouter des éléments à ma JList.
    Personellement j'utilise un AbstractListModel auquel j'ajoute une méthode pour modifer les éléments qui a à peu près cette tête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public void setData(Donnees d) {
            this.data = d;
            //on avertit la liste que le modèle a changé
            this.fireContentsChanged(this,0,this.getSize()-1);
     
        }
    Voilà, en esperant t'avoir aidé.


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  3. #3
    Membre chevronné
    Avatar de Orian
    Inscrit en
    Août 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Août 2006
    Messages : 372
    Par défaut
    Bon je crois que ça m'aide...Mais peut tu m'expliquer le parce que je comprend pas...Et netbeans non plus...

  4. #4
    Membre Expert
    Avatar de afrikha
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    1 600
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 600
    Par défaut
    c'est juste un exemple ça...
    data represente les données de ton modèle, ça peut étre des string,des double,...

    Supposons que ta JList affiche une liste de nom, des string donc.
    Ton modèle a alors comme attribut une liste de string, par exemple un tableau qu'on nommera donnees.
    La méthode devient alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public void setData(String[] d) {
            this.donnees = d;
            //on avertit la liste que le modèle a changé
            this.fireContentsChanged(this,0,this.getSize()-1);
     
        }


    Mes publications
    Lisez
    Les régles du forum
    Pensez au bouton

  5. #5
    Membre chevronné
    Avatar de Orian
    Inscrit en
    Août 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Août 2006
    Messages : 372
    Par défaut
    Désolé je pose des bêtes question mais je rame...Je ne dois plus être habitué à la chaleur...

    Où je met ça et comment je l'appelle ? (sous entendu la méthode que tu me donne).

    Merci er désolé si je t'embête...

  6. #6
    Membre éclairé
    Avatar de seiryujay
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 950
    Par défaut
    Moi aussi j'aime bien poser des questions bêtes : ton exception pointe vers quelle ligne?
    Ce ne serait pas celle-là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String value = String.valueOf(lstActivite.getSelectedValue());
    avec un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lstActivite.getSelectedValue()
    qui serait null et une méthode qui crasherait?...

    Sinon pour te répondre, si tu utilises la méthode d'afrikha, tu dois créer une classe qui étend AbstractListModel et tu ajoutes la méthode dans cette classe.

    Après, tu l'appelles quand tu veux modifier les données de ta liste, en passant en paramètre toutes les données que doit contenir ta liste.

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

Discussions similaires

  1. Problème avec un ListSelectionListener (CastException!)
    Par bakaratoun dans le forum Composants
    Réponses: 2
    Dernier message: 27/02/2009, 00h11
  2. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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