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

NetBeans Java Discussion :

Problème avec les Jlist pour changer :)


Sujet :

NetBeans Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 34
    Points : 15
    Points
    15
    Par défaut Problème avec les Jlist pour changer :)
    Bonjour à vous chers camarades développeurs,

    Autant jouer cartes sur tables direct, je débute en JAVA, j'ai plutôt un passé de VB, VB.NET, PHP, C, C#

    Anyway, je suis entrain de bosser sur un projet ou je suis le seul à coder, ce qui veut dire que je me farçis tout : Analyse, développement, etc..

    J'ai donc installé NetBeans 5.5 et je me lance à faire de la maquette (GUI), une fois que j'ai quelques contrôles placés à peu près la ou je veux, j'éssaye de donner un peu de vie à tout ça

    Je me renseigne sur comment marchent les Jlist, le modèle MVC, etc...

    Sur ce même forum j'ai lu que dans la propriété SelectionModel il fallait sélectionner l'option User Code et ainsi mettre une DefaultListModel que l'on à déclaré préalablement après les 999 999 999 lignes auto-générées par NetBeans

    Pour le moment j'ai tout bon, j'ai déclaré mes 2 DefaultListModel (car j'ai 2 Jlist a gérer), j'ai mis la proprieté User Code, et mettant pour chacune des Jlist les DefaultListModel respectives à chacune d'entre elles

    Déclaration post code auto généré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    private DefaultListModel dl6;
    private DefaultListModel dl7;
    Dans chacune des Jlist j'ai donc mis User Code : "dl6" pour la première et "dl7" pour la seconde

    Maintenant quand je compile mon programme... c'est la que ça se corse...

    Je me prends un sale message d'erreur dans la gueule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Compiling 1 source file to D:\Documents and Settings\fs214824\Mes documents\CRISTAL\Code\CRISTAL\build\classes
    D:\Documents and Settings\fs214824\Mes documents\CRISTAL\Code\CRISTAL\src\cristal\Form_Mere.java:293: setSelectionModel(javax.swing.ListSelectionModel) in javax.swing.JList cannot be applied to (javax.swing.DefaultListModel)
            jList6.setSelectionModel(dl6);
    D:\Documents and Settings\fs214824\Mes documents\CRISTAL\Code\CRISTAL\src\cristal\Form_Mere.java:302: setSelectionModel(javax.swing.ListSelectionModel) in javax.swing.JList cannot be applied to (javax.swing.DefaultListModel)
            jList7.setSelectionModel(dl7);
    2 errors
    Lorsque je clic sur l'erreur pour qu'on me montre d'ou provient l'erreur comme par hasard je tombe sur un morceau de code auto généré... donc intouchable

    Que voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    jList6.setSelectionModel(dl6);
    jList7.setSelectionModel(dl7);

    Je me doute bien que l'erreur doit venir de moi, et non du code generé, maintenant je ne sais pas ou comment ni comment ni pourquoi, j'ai pas encore assez d'expérience en la matière c'est la première que je fais et ça chie... great !

    Comme cela doit être un type d'erreur assez courant dans le monde des jeunes débutants voulant faire des Jlist.... Je me suis permis de poster ce message :p

    Voila, en vous remerciant

  2. #2
    Membre éprouvé
    Avatar de n!co
    Profil pro
    Inscrit en
    Février 2004
    Messages
    831
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 831
    Points : 936
    Points
    936
    Par défaut
    Bonjour catwomanette et bienvenue dans le monde java.

    Effectivement tu as fait une petite erreur d'interprétation.
    La JList fonctionne avec deux modeles, le ListModel qui contient les données et le ListSelectionModel qui contient les informations sur la selection (des données contenues dans le ListModel dans notre cas).

    La tu essayes d'affecter un modele de selection et donnant un modele de donnée, d'où lerreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setSelectionModel(javax.swing.ListSelectionModel) in javax.swing.JList cannot be applied to (javax.swing.DefaultListModel)
    Donc primo du stock tes données dans un ListModel, le DefaultListModel s'il te suffit, que tu passes ensuite à ta JList via la propriété Model.
    Apres ca si tu as besoin de comportement spécifique sur ta selection, tu peux redéfénir un ListSelectionModel, mais dans ton cas je te conseille de garder celui par defaut (que tu peux recupérer par getSelectionModel())

    Pour plus d'info sur le fonctionnement des JList, y a le tuto officiel


    Maintenant sur le fonctionnement de NetBeans.
    Moins tu utiliseras les propriétés User Code et mieux ton code se portera et toi par la meme occasion. car entre le code non modifiable et celui qur tu auras injectés, tu comprendra que tu vas vite arriver a qqs chose d'immaintenable.
    L'idée est alors d'y déposer que ce qui ne peux pas être mis ailleurs ou qui n'a pas lieu d'être mis ailleurs.

    Pour de simples variables, on les met généralement comme attribu de la classe, les initialises via une méthode (constructeurs, ...) et il suffit de l'utiliser telquelle.
    Apres ca va beaucoup dépendre de ce que tu veux faire, il n'y a pas non plus de solution miracle.

    Esperant ne pas avoir flouté un peu plus ton esprit
    Nico
    Netbeans account : nico@share.java.net
    Merci de ne pas poser de questions techniques par MP

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 34
    Points : 15
    Points
    15
    Par défaut
    bon deja je te remercie de ta réponse, je commençais a désespérer...

    j'y ai passé toute la journée jusqu'a ce que je quitte le boulot et perso si je devais payer quelqu'un pour coder, et qu'il passe la journée a se prendre la tête avec une simple liste.... je le payerais bien en Roubles
    Enfin au moins si un jour j'ai un poste a responsabilité et que les développeurs ont du mal avec certaines choses, je serai surement compréhensif

    la je viens d'étudier un petit peu la réponse

    donc si j'ai bien compris quand tu dis :
    La JList fonctionne avec deux modeles, le ListModel qui contient les données et le ListSelectionModel qui contient les informations sur la selection (des données contenues dans le ListModel dans notre cas).
    ^^ ceci voudrait dire que :

    la ListModel ne contient que les données (paulette, jeannot, jocelyne, marcel patulacci, etC...)

    et

    le ListSelectionModel contient les informations sur la selection comme selectedindex, selecteditem

    je vois pas trop encore comment ça marche (comme dirait notre ami michel chevalet)

    mais je vais me matter le tuto dès demain matin histoire d'avoir une explication structurée Made In SUN

    En attendant de voir ce que ça donne... je te remercie pour ta réponse et en cas de nécéssité je mettrai le nouveau message d'érreur

    En espérant pouvoir clicker sur Résolu au plus vite.... on verra ça demain

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 34
    Points : 15
    Points
    15
    Par défaut
    Bon alors j'ai suivi tes conseil et j'ai viré les User Code (je savais deja quand je les ai mis que c'était une mauvaise idée... mais bon, faut oser josé, j'ai testé sur le coup )

    aujourd'hui j'ai un peu plus avancé, je suis près du but mais j'ai encore une détail a régler : j'explique

    j'ai fait mes petites déclarations
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        private DefaultListModel lm6 = new DefaultListModel();
        private DefaultListModel lm7 = new DefaultListModel();
    et dans la méthode dans le constructeur de ma Form j'ai mis les choses suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
            lm6.addElement("Uranium");
            lm6.addElement("Plutonium");
            lm6.addElement("Chocolat");
            lm6.addElement("Johnson");
            jList6 = new JList(lm6);
            System.out.println("list model 6 : " + lm6.getSize());
            System.out.println("le modele de la liste 6 : " + jList6.getModel());
            System.out.println("taille de la liste 6 : "+ jList6.getSize());
    et une fois que je compile dans la console affiche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    list model 6 : 4
    le modele de la liste 6 : [Uranium, Plutonium, Chocolat, Johnson]
    taille de la liste 6 : java.awt.Dimension[width=0,height=0]
    ^^ ce qui correspond bien à ce que j'ai demandé dans mes sorties console

    Cependant

    Ma dite liste, n'affiche aucun élément... pourtant je lui ai dit : jList6 = new JList(lm6);, on dirait qu'il y a toujours quelque chose qui manque

    du coup j'ai rajouté :

    mais ça donne la même sortie que tout à l'heure... oinnnn

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 34
    Points : 15
    Points
    15
    Par défaut
    Ahh je me rapproche...

    j'ai viré un truc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jList6 = new JList(lm6);
    car en fait dans le code généra ça y était deja :p

    Bon bah pour le moment ça commence à tourner huhuuuuuuuu

    Merci pour tes conseils sur les voies à explorer ça m'a fait avancer sur le problème :p

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

Discussions similaires

  1. [XL-2003] Problèmes avec les dates pour un planning.
    Par perpitou dans le forum Excel
    Réponses: 6
    Dernier message: 22/11/2011, 23h48
  2. [Xtext] Problème avec les templates pour les mots clé
    Par P1t0u dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 10/06/2010, 15h53
  3. [EJB3 Entity] Problème avec les annotations pour une List d'Enum
    Par uiscias dans le forum Java EE
    Réponses: 2
    Dernier message: 31/03/2009, 17h09
  4. [MySQL] Problème avec les jointure pour un menu
    Par Glocman dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 31/07/2006, 17h44
  5. Réponses: 10
    Dernier message: 08/07/2006, 11h12

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