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 :

probleme de DefaultJListModel -> (JList.getModel())


Sujet :

Composants Java

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 116
    Points : 71
    Points
    71
    Par défaut probleme de DefaultJListModel -> (JList.getModel())
    Bonjour à tous,

    J'ai une JList en statique qui contient le batch de mes éléments à envoyer sur un serveur.

    "statique" car une fois que l'élément est envoyé, je voudrais pouvoir actualliser cette liste en supprimant l'élément envoyé (le premier de la liste). L'interface graphique contenant la JList instancie la classe qui se charge de l'envoi, et c'est cette classe qui doit pouvoir actualiser la list.

    J'ai donc créer un méthode statique dans la classe d'interface:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    public static void updateList(){
    		try{
    		DefaultListModel modele = (DefaultListModel) consoleList.getModel();
    		modele.remove(0);
    		consoleList = new JList(modele);
    		consoleList.setSelectedIndex(0);
    		consoleScroll2.setViewportView(consoleList);
    		}
    		catch(Exception e){
    			System.out.println(e);
    		}
    	}
    Mais j'ai une exception sur le :

    DefaultListModel modele = (DefaultListModel) consoleList.getModel();

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    java.lang.ClassCastException: javax.swing.JList$2
    Pourtant j'ai déjà fait cette opération 49 fois avant et ça a toujours marché.

    Est-ce que quelqu'un sait d'où peut preovenir l'erreur?

    Merci à vous

  2. #2
    Membre averti Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Points : 375
    Points
    375
    Par défaut
    sur quelle ligne de code l'erreur se produit ?
    d'apres le code que tu as fournit ca ne peut etre que sur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DefaultListModel modele = (DefaultListModel) consoleList.getModel();
    ca qui veut dire que le model que tu recuperes n'est pas de type DefaultListModel !!

    essaie de verifier la ligne sur laquelle l'exception se produit (dans la stacktrace) et rajoute un log pour verifier quelle est la classe de l'objet que tu recuperes , compare le avec le type que tu attends et tu devrais avoir la solution au probleme.

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 116
    Points : 71
    Points
    71
    Par défaut
    ok je vais faire ca... mais quand j'instancie ma JList, c'est à l'aide d'un vector de String...........

    HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ca serait à cause de cette notation 1.5 ou il faut spécifier le type d'objet contenu dans le vector??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Vector<String>  v = new Vector<String>(); ??
    je vais vérifier ça dès que je rentre a mon bureau..

    merci pour la piste!

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 116
    Points : 71
    Points
    71
    Par défaut
    Apparement ca ne serait pas du a de la notation 1.5

    J'ai fais un log de l'objet que renvoi le getModel(). normalement ca devrait être un JListModel mais ici ca renvoi un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    class javax.swing.JList$2
    Pour quelle raison? ça j'en ait aucunes idées...

  5. #5
    Membre averti Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Points : 375
    Points
    375
    Par défaut
    la tu nous montres la methode qui met a jour ta liste
    envoie le code ou tu crées ta JList ( consoleList) la premiere fois 8)

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 116
    Points : 71
    Points
    71
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    		consoleList = new JList(this.vList);
    		consoleScroll2 = new JScrollPane(consoleList);
    		consoleScroll2.setPreferredSize(new Dimension(300,200));
    		jpanel1.add(consoleScroll2, gridbagconstraints);
    vList est un vecteur contenant des String.


    J'ai quand même réussit à ce que ca marche en la faisant "old-school" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ListModel j = consoleList.getModel();
    		DefaultListModel modele = new DefaultListModel();
    		for (int i = 0; i<j.getSize(); i++){
    			modele.addElement(j.getElementAt(i));
    		}
    		modele.remove(0);
     
    		consoleList = new JList(modele);
    mais ce n'est pas super propre

    Je ne met pas encore le sujet en "résolu", on ne sait jamais que quelque trouve ce que j'ai fait de travers

  7. #7
    Membre averti Avatar de biozaxx
    Profil pro
    Inscrit en
    Août 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 403
    Points : 375
    Points
    375
    Par défaut
    a mon avis c'est normal vu que tu n'utilisais pas pas de model pour ta liste et tu associais directement ton vecteur de données.

    il faut que tu fasses comme ca:
    creer un model
    remplir le modele avec ton vecteur
    creer ta liste basée sur le modele

    qd tu update, updater directement le modele

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    DefaultListModel modele = new DefaultListModel(); 
    for (int i = 0; i<this.vList; i++){ 
             modele.addElement(this.vList.get(i)); 
    } 
    consoleList = new JList(modele);

  8. #8
    Membre régulier
    Inscrit en
    Novembre 2004
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 116
    Points : 71
    Points
    71
    Par défaut
    mais ce que je ne comprend pas : c'est que j'ai au moins une dizaine de JList dans mes différentes interfaces. Toutes les méthodes que j'ai crées renvoient des Vector<String>. j'instacie la JList directement avec cette méthode : = new JList(Vector maMethode(...));
    Apres je modifie tout le temps en recupérant dans un DefaultListModel et ça a toujours marché!

    Ici je n'ai fait qu'un copier/coller de mes autres interfaces...
    ca me dépasse

Discussions similaires

  1. [JList] probleme d'affichage
    Par Sirkiller dans le forum Composants
    Réponses: 2
    Dernier message: 23/05/2006, 18h05
  2. [Swing] probleme de JList. (refresh et renvoi index)
    Par koolway dans le forum Composants
    Réponses: 6
    Dernier message: 24/03/2006, 19h39
  3. [SWING] Probleme actualisation Jlist
    Par MaxiMax dans le forum Composants
    Réponses: 1
    Dernier message: 24/01/2006, 10h21
  4. [Evenement] Probleme avec un JList
    Par mawashee dans le forum Composants
    Réponses: 3
    Dernier message: 06/12/2004, 18h45
  5. [JList] probleme avec le ListSelectionListener
    Par dzincou dans le forum Composants
    Réponses: 4
    Dernier message: 06/12/2004, 11h55

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