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 :

Images dans une JList


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 39
    Par défaut Images dans une JList
    Bonjour, je dois afficher des smileys dans une JList, j'ai le code suivant:

    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
     
    Vector listeSmileys = new Vector();
            JList listeAvatars = new JList();
     
            listeSmileys.addElement(new ImageIcon("./images/smileys/01.gif"));
            listeSmileys.addElement(new ImageIcon("./images/smileys/02.gif"));
            listeSmileys.addElement(new ImageIcon("./images/smileys/03.gif"));
            listeSmileys.addElement(new ImageIcon("./images/smileys/04.gif"));
            listeSmileys.addElement(new ImageIcon("./images/smileys/05.gif"));
            listeSmileys.addElement(new ImageIcon("./images/smileys/06.gif"));
            listeSmileys.addElement(new ImageIcon("./images/smileys/07.gif"));
            listeSmileys.addElement(new ImageIcon("./images/smileys/08.gif"));
            listeSmileys.addElement(new ImageIcon("./images/smileys/09.gif"));
            listeSmileys.addElement(new ImageIcon("./images/smileys/10.gif"));
     
     
            listeAvatars = new JList(listeSmileys);
            listeAvatars.setSelectedIndex(0);

    Seulement lorsque je lance ma frame contenant la Jlist, l'affichage des smileys est assez aléatoire: certains ne s'affichent pas...

    Y a t'il une autre méthode pour etre sur que les gif s'affichent bien ?
    (je n'ai que des images dans la JList)

  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
    est-ce que lorsque tu bouge la fenètre les images s'affichent toutes ?


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

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 128
    Par défaut
    C'est peut-être un peu surdimensionné par rapport à ton problème, mais tu peux touours utiliser un ListCellRenderer... C'est un peu casse pieds à implementer mais ça marche très bien .

  4. #4
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 39
    Par défaut re
    1 / bouger la fenetre ne change rien
    2/ j'ai essayé avec ListCellRenderer c'est pareil, est ce que le fait que j'utilise new ImageIcon("./images.img.gif") est la cause de chargement et/ou de l'affichage aléatoire ?

    code classe smiley
    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
     
    import javax.swing.Icon;
     
     
    public class Smiley {
     
        private Icon imageSmiley;
     
        public Smiley(Icon imageSmiley) {
            this.imageSmiley=imageSmiley;
        }
        public Icon getSmiley(){
            return imageSmiley;
        }
     
     
    }

    code class ListCellRendererChoixSmiley
    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
     
    import javax.swing.JLabel;
    import javax.swing.JList;
    import javax.swing.ListCellRenderer;
     
     
    class ListCellRendererChoixSmiley extends JLabel implements ListCellRenderer {
     
            public Component getListCellRendererComponent(JList list,Object value,int index,boolean isSelected,boolean cellHasFocus) {
     
                if (value instanceof Smiley)  {
                    Smiley smiley = (Smiley)value;
                     setIcon(smiley.getSmiley());
                }      
                return this;
            }
     
      }

    code test
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Vector listeSmileys = new Vector();
            JList listeAvatars = new JList(listeSmileys); //tonModel = DefaultListModel
            listeAvatars.setCellRenderer(new ListCellRendererChoixSmiley());
            listeSmileys.addElement(new Smiley(new ImageIcon("./images/smileys/01.gif"))); 
            listeSmileys.addElement(new Smiley(new ImageIcon("./images/smileys/02.gif")));
            listeSmileys.addElement(new Smiley(new ImageIcon("./images/smileys/03.gif"))); 
            listeSmileys.addElement(new Smiley(new ImageIcon("./images/smileys/04.gif"))); 
            listeSmileys.addElement(new Smiley(new ImageIcon("./images/smileys/05.gif"))); 
            listeSmileys.addElement(new Smiley(new ImageIcon("./images/smileys/06.gif"))); 
    listeAvatars.addListSelectionListener(new ListSelectionListenerCHOIX_AVATARS(listeAvatars));
            JScrollPane listeScrollPane = new JScrollPane(listeAvatars);

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 128
    Par défaut
    Quand tu dis "aléatoire", ça veut dire que c'est toujours les mêmes images qui ne s'affichent pas ou bien c'est variable (dès fois c'est l'une, dès fois c'est l'autre)? Parce que si c'est toujours les mêmes images qui ne veulent pas s'afficher, c'est peut être du côté des images elles-mêmes qu'il faut regarder...
    Autre chose, est-ce que tu as essayé d'aficher tes icônes ailleurs que dans la JList (genre un panel)? Fais le, histoire de vérifier qu'elles sont bien chargées en mémoire comme il faut.

  6. #6
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 39
    Par défaut re
    Bien vu, ce sont toujours les mêmes qui ne s'affichent pas, ce qui me fesait penser que ça clochait pas du coté des images c'est qu'une ou deux fois, il y en a une qui s'est affiché puis a disparu...Je vais quand meme voir avec d'autres smileys...

Discussions similaires

  1. intégrer un fichier image dans une base de donnée?
    Par Lody dans le forum Requêtes
    Réponses: 9
    Dernier message: 16/03/2006, 19h08
  2. inserer une image et du texte dans une Jlist
    Par cellestion dans le forum Composants
    Réponses: 4
    Dernier message: 03/03/2006, 23h47
  3. insérer des images dans une bd postgresql
    Par ephet dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 20/01/2004, 09h18
  4. Peut on mettre une image dans une BD MySQL ?
    Par maddog2032 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 25/07/2003, 16h18
  5. [VB6] [Excel] Insérer une image dans une feuille
    Par mathias dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 09/10/2002, 07h44

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