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

Composants Java Discussion :

[JList] cast - getSelectedValue()


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Par défaut [JList] cast - getSelectedValue()
    Bonjour,

    j'ai encore un probleme (je n'ai pas encore réussi à resoudre le precedent...)

    j'ai une map ou les cles st des noms et les valeurs st des infos sur ces noms.

    la liste des cles est présentée sous forme d'une JList. Qd je clique sur une clé, je dois obtenir les infos correspondantes (soit ds une JList soit ds un JTextArea): j'ai essayé les 2 mais ça ne fonctionne pas. j'ai des exceptions.

    infos ds une JList:
    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
     
    //methode actionPerformed de la classe ecouteur d'un JButton
     
    if (ma_jlist.getSelectedValue()!=null){
     //getSelectedValue() renvoie un Object
     //je veux le caster en Individu
     Individu p = (Individu)(ma_jlist.getSelectedValue());
     Set coll_info;
     //ici, afficher_contenu() me renvoie un Set
     coll_info = map.afficher_contenu(p);
     DefaultListModel lm3=new DefaultListModel();
     Iterator it3=coll_info.iterator();
     while( it3.hasNext() ){
     Object oo3=it3.next();
     lm3.addElement(oo3);
    }
    JList liste_contenu = new JList (lm3);
    panel.remove(ma_jlist);
    panel.add(liste_contenu, BorderLayout.NORTH);
    panel.revalidate();
    infos ds un JTextArea:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    //methode actionPerformed de la classe ecouteur d'un JButton
     
    if (ma_jlist.getSelectedValue()!=null){
     //getSelectedValue() renvoie un Object
     //je veux le caster en Individu
     Individu p = (Individu)(ma_jlist.getSelectedValue());
     //zone_info est un JTextArea
     //ici, afficher_contenu() me renvoie une String
     zone_info.setText(map.afficher_contenu(p));
     panel.remove(ma_jlist);
     panel.add(zone_info, BorderLayout.NORTH);
     panel.revalidate();
    }
    erreurs à l'execution:
    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
     
    Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String
    	at ....actionPerformed(classe.java:90)
    	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:3093)
    	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:1766)
    	at java.awt.Component.dispatchEvent(Component.java:3803)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
    	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)
    si vous pouviez m'indiquer ce que signifie ces erreurs. apparemment, ce serait au moment du cast de la valeur de retour de getSelectedValue() en Individu. mais je ne vois pas pourquoi ce ne serait pas bon. dc si vous pouviez m'aider, je vous remercie.

  2. #2
    duj
    duj est déconnecté
    Membre chevronné

    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2003
    Messages : 141
    Par défaut
    Si la ligne 90 de la classe nommé classe.java est bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Individu p = (Individu)(ma_jlist.getSelectedValue());
    ca veut dire que tu a stocké ds String ds la jlist, et pas des individus. Du coup, tu veut récupérer un indivdu et comme en fait tu as un string, il y a ClassCastException !

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2002
    Messages : 652
    Par défaut
    Juste de mémoire, la méthode getSelectedValue() ne retourne pas s'implement la partie affichée et sélectionnée de ta JList ?

    N'y as t'il pas une méthode getSelectedObject() pour récupérer l'objet ?

    [Désolé mais j'ai arrêté swing depuis pas mal de temps et je n'ai plus toute l'API en tête ]

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2005
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 629
    Par défaut
    effectivement, c'etaient des String ds ma JList.
    je pensais qu'on avait le droit de caster en ce qu'on voulait...
    merci beaucoup.
    probleme résolu hyper rapidement, c'est cool.
    a+


    PS: Alwin , je n'ai pas trouvé la methode getSelectedObject() (bon mais je n'ai pas beaucoup cherché car mon probleme a été résolu par duj) . merci en tout cas de ta réponse.

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

Discussions similaires

  1. Jlist Transformer getSelectedValues en String[]
    Par Kevin12 dans le forum Débuter
    Réponses: 6
    Dernier message: 13/01/2010, 15h19
  2. JList en line wrapping
    Par dreydrey dans le forum Composants
    Réponses: 3
    Dernier message: 16/12/2003, 11h22
  3. CAST ou autre ?
    Par 74160 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/07/2003, 15h00
  4. CAST DATETIME ----> SMALLDATETIME
    Par Guizz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/06/2003, 12h07
  5. traduction en delphi "reinterpreted cast"
    Par Chupakabra dans le forum Langage
    Réponses: 3
    Dernier message: 13/02/2003, 15h49

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