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, Icon & ListCellRenderer


Sujet :

Composants Java

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut JList, Icon & ListCellRenderer
    Bonjour à tous, j'ai une liste de miniatures, sur lesquelles je souhaiterais ajouter une zone cliquable. (Bon, mon explication est déjà bancale, je vous joints une image qui parlera mieux que moi !)

    Nom : list.png
Affichages : 134
Taille : 27,2 Ko

    Cette liste de miniature est crée comme ceci :

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     modelObj = new DefaultListModel();
       //liste de String contenant le nom de chaque fichier image
       objList = new JList(modelObj);
       ListCellRenderer rendererObj = new ThumbCellRendererObj();
       objList.setCellRenderer(rendererObj);
    objList.addMouseListener((MouseListener)rendererObj);


    et à présent le listCellRenderer :


    Code java : 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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    class ThumbCellRendererObj  implements ListCellRenderer, MouseListener  {
      protected DefaultListCellRenderer defaultRenderer = new DefaultListCellRenderer();
     
      public Component getListCellRendererComponent(JList list, Object value, int index,
          boolean isSelected, boolean cellHasFocus) {
     
     
     
        Font theFont = null;
        java.awt.Color theForeground = null;
        Icon theIcon = null;
        String theText = null;
     
     
        JLabel renderer = (JLabel) defaultRenderer.getListCellRendererComponent(list, value, index,
            isSelected, cellHasFocus);
     
     
        if (value instanceof Object[]) 
       {
          Object values[] = (Object[]) value;
          theFont =  fontCatalogObj;
          theForeground = java.awt.Color.DARK_GRAY;
          theIcon = new Icon(values[1]+".png");
          theText =  (String) values[0];
     
        } 
        if (!isSelected) {
          renderer.setForeground(theForeground);
        }
     
        renderer.setFont(theFont);
        renderer.setToolTipText(theText);
        renderer.setText(theText);
     
        //renderer.addMouseListener(this);
         return renderer;
      }
     
            public void mouseClicked(MouseEvent e) {
                System.out.println("mousepick = " + e.getX() + " " + e.getY());
            }
     
            public void mousePressed(MouseEvent e) {
            }
     
            public void mouseReleased(MouseEvent e) {
            }
     
            public void mouseEntered(MouseEvent e) {
            }
     
            public void mouseExited(MouseEvent e) {
            }
        }

    Ce que j'essaye de faire, c'est détecter à quelles coordonnées de la vignette l'utilisateur a cliqué. Hors, avec objList.addMouseListener((MouseListener)rendererObj);
    je récupère bien les coordonnées, mais par rapport à l'ensemble de mon scrollPane, et pas par rapport à la vignette sur laquelle j'ai cliqué. J'ai bien tenté d'ajouter le MouseListener sur le renderer (JLabel) à la fin de mon ListCellRenderer, mais cela ne semble pas fonctionner. Auriez vous des idées ? Je suis à peu près certain de ne pas avoir été assez clair, n'hésitez pas à me demander d'expliciter tout ce que vous n'auriez pas compris.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 45
    Par défaut
    Personne pour m'aider ?

Discussions similaires

  1. Icones sur JList
    Par pendoRa dans le forum Débuter
    Réponses: 4
    Dernier message: 15/06/2010, 10h26
  2. Problème JLIst et ListCellRenderer avec type non basic
    Par dudeMan dans le forum Composants
    Réponses: 1
    Dernier message: 19/03/2010, 14h18
  3. Réponses: 4
    Dernier message: 06/08/2007, 02h22
  4. icones avec une JList
    Par barbiche dans le forum Composants
    Réponses: 7
    Dernier message: 05/04/2007, 10h28
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

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