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 :

Récupérer les chaînes affichées dans un JList


Sujet :

Composants Java

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 120
    Par défaut Récupérer les chaînes affichées dans un JList
    Bonjour,

    Est-ce que quelqu'un connaît un moyen de récupérer, au mieux, les chaînes affichées dans un JList, à défaut les objets listés?

    Je ne trouve pas de méthode standard et je pense quand même que ça doit exister...

    Merci beaucoup!

  2. #2
    Membre Expert
    Avatar de natha
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2 346
    Par défaut
    Les chaines affichées dans la JList sont les toString() des objets de la liste.
    Sauf s'il y a un renderer, auquel cas il n'y a pas de règle.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    120
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 120
    Par défaut
    Merci, en effet il y a un renderer. Celui-ci génère des résumés de ligne de façon à ce que le texte s'adapte à la largeur de la liste et qu'on ait pas à scroller.

    Mon problème c'est que j'ajoute intéractivement des listes et à chaque fois que j'en ajoute des nouvelles, les scrollBar horizontales des listes précédentes doublent de largeur ( en bref, la scrollbar va plus loin qu'il ne le faut et si on va à droite, on se retrouve à scroller sur du blanc... )

    J'ai trouvé le soucis, dans mon renderer, je fixe la largeur max d'une cellule en assignant la plus longue chaîne en tant que prototype :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if(list.getPrototypeCellValue() == null || list.getPrototypeCellValue().toString().length() < row.length() )
    {
         list.setFixedCellWidth(0); 
         list.setPrototypeCellValue(row);
    }
    Le problème ici, c'est que quand le liste est rétrécie, on conserve quand même la chaîne prototype précédente, qui est trop grande, d'où une scrollBar trop large.


    J'ai pensé pouvoir ajouter ça pour vérifier que la liste prototype est bien dans la liste, mais ça me renvoie des erreurs, alors que j'ai bien un DefaultListModel sur mes listes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    DefaultListModel dlm = (DefaultListModel) list.getModel();
    if(list.getPrototypeCellValue() == null || list.getPrototypeCellValue().toString().length() < row.length() || !dlm.contains(list.getPrototypeCellValue().toString()))
    {
    	list.setFixedCellWidth(0); 
    	list.setPrototypeCellValue(row);
    }

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/03/2015, 13h37
  2. [MySQL] Récupérer les valeurs définies dans un champ ENUM
    Par Huntress dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/07/2010, 18h55
  3. Récupérer les mails Outlook dans une table Access
    Par zerrokooll dans le forum VBA Access
    Réponses: 79
    Dernier message: 07/07/2009, 14h22
  4. Réponses: 3
    Dernier message: 25/09/2008, 10h26
  5. Comment récupérer les adresses WWW dans Internet Explorer ?
    Par chaours dans le forum Web & réseau
    Réponses: 7
    Dernier message: 03/09/2003, 14h27

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