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

AWT/Swing Java Discussion :

Inserer Des Images dans une table par ligne


Sujet :

AWT/Swing Java

  1. #1
    Membre régulier
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2008
    Messages : 211
    Points : 115
    Points
    115
    Par défaut Inserer Des Images dans une table par ligne
    Bonjour,
    j voulais savoir s'il y a une possibilité d'insérer des images par ligne dans une table.
    dans la première cellule image1 dans la 2ème image2 .....
    j'ai essayé avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jTable.getColumn("").setCellRenderer(new CustomCellRenderer());
    elle m'affiche toute la colonne avec l'image.
    merci pour votre aide d'avance

  2. #2
    Membre actif Avatar de uhrand
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 203
    Points : 275
    Points
    275
    Par défaut
    Citation Envoyé par stratocasters Voir le message
    elle m'affiche toute la colonne avec l'image.
    Le renderer peut être configuré pour avoir un contenu différent par cellule en spécifiant l'indice de la ligne et l'indice de la colonne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (row == 0 && column == 0) {
        //contenu pour la cellule (0,0)
    } else {
        //contenu pour les autres cellules
    }

  3. #3
    Membre régulier
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2008
    Messages : 211
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par uhrand Voir le message
    Le renderer peut être configuré pour avoir un contenu différent par cellule en spécifiant l'indice de la ligne et l'indice de la colonne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (row == 0 && column == 0) {
        //contenu pour la cellule (0,0)
    } else {
        //contenu pour les autres cellules
    }
    Salut urhand oui dans ce cas ca marche mais ce que je veux faire c'est suivant une comparaison entre les valeurs existantes(que je récupère de ma base) dans deux colonnes je dois ajouter une image dans la colonne suivante,
    j'ai essayé de récupérer les valeurs de chaque cellule et tester mais ca ne marche pas.
    Des idées??

  4. #4
    Membre actif Avatar de uhrand
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 203
    Points : 275
    Points
    275
    Par défaut
    Citation Envoyé par stratocasters Voir le message
    j'ai essayé de récupérer les valeurs de chaque cellule
    Essaie de redéfinir la méthode "JTable#prepareRenderer" qui est une couche de rendu commune avec accès à chaque cellule.
    EDIT: en fait, je t'ai peut-être mal compris. As-tu essayé de récupérer les valeurs avec "getValueAt(..)" ?

  5. #5
    Membre régulier
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2008
    Messages : 211
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par uhrand Voir le message
    Essaie de redéfinir la méthode "JTable#prepareRenderer" qui est une couche de rendu commune avec accès à chaque cellule.
    EDIT: en fait, je t'ai peut-être mal compris. As-tu essayé de récupérer les valeurs avec "getValueAt(..)" ?
    Oui c'est ce que j'ai essayé de faire recupérer les valeurs avec
    les comparer ensuite ajouter les images mais tjs il insere une seule image dans toutes les lignes comme s'il regarde que la premiere condition et selon le résultat il continu pour le reste

  6. #6
    Membre actif Avatar de uhrand
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 203
    Points : 275
    Points
    275
    Par défaut
    Citation Envoyé par stratocasters Voir le message
    il insère une seule image dans toutes les lignes comme s'il regarde que la première condition et selon le résultat il continu pour le reste
    Essaie de configurer le "renderer" comme ceci (en principe la même logique que plus haut):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (...) {//comparer les valeurs récupérées
        //contenu pour la première condition
    } else {
        //contenu pour le reste
    }

  7. #7
    Membre régulier
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2008
    Messages : 211
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par uhrand Voir le message
    Essaie de configurer le "renderer" comme ceci (en principe la même logique que plus haut):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (...) {//comparer les valeurs récupérées
        //contenu pour la première condition
    } else {
        //contenu pour le reste
    }
    c'est ce que j'ai fait
    voici un bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    for (int i = 0;i<data.size();i++){
         if((jTable1.getValueAt(i, 4).toString()).compareTo(jTable1.getValueAt(i, 5).toString())>0)
     
     
    		                     lab2.setIcon(up);
     
    	              else 
    	               {
    	            	   lab2.setIcon(down);
    	               }
     
        		}
    return lab2; }
    mais il teste s'il trouve la difference >0 seulement pour i=0 il ajoute l'image(up) dans tte la colonne sinon il ajoute l'image(down) aprés comme s'il sort de la boucle et remplit le reste des lignes suivant la premiere image ajouter

  8. #8
    Membre actif Avatar de uhrand
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 203
    Points : 275
    Points
    275
    Par défaut
    Citation Envoyé par stratocasters Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for (int i = 0; i < data.size(); i++) {
        if ((jTable1.getValueAt(i, 4).toString())
                .compareTo(jTable1.getValueAt(i, 5).toString()) > 0) {
            lab2.setIcon(up);
        } else {
            lab2.setIcon(down);
        }
    }
    La méthode "getTableCellRendererComponent" est appelée chaque fois qu'une cellule doit être rendu. Attention: une cellule à la fois! Ça n'a aucun sens de faire des lab2.setIcon(..) multiples dans une boucle comme tu le fais. Essaie ceci:
    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
    19
    20
    21
    22
    23
     
        // Cette méthode est utilisé chaque fois qu'une cellule doit être rendu
        // dans une colonne qui utilise ce "renderer".
        public Component getTableCellRendererComponent(JTable jTable1, Object value,
                boolean isSelected, boolean hasFocus, int rowIndex, int colIndex) {
            // la cellule qui sera rendue est localisée à (rowIndex, colIndex)
     
            if (isSelected) {
                // la cellule est sélectionnée (et peut-être d'autres cellules également)
            }
     
            if (hasFocus) {
                // la cellule est l'ancre d'une table active
            }
    ...
     
            if ((jTable1.getValueAt(rowIndex, COL1).toString())
                    .compareTo(jTable1.getValueAt(rowIndex, COL2).toString()) > 0) {
                lab2.setIcon(up);
            } else {
                lab2.setIcon(down);
            }
    ...

  9. #9
    Membre régulier
    Profil pro
    Chef de projet
    Inscrit en
    Mai 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Mai 2008
    Messages : 211
    Points : 115
    Points
    115
    Par défaut
    Citation Envoyé par uhrand Voir le message
    La méthode "getTableCellRendererComponent" est appelée chaque fois qu'une cellule doit être rendu. Attention: une cellule à la fois! Ça n'a aucun sens de faire des lab2.setIcon(..) multiples dans une boucle comme tu le fais. Essaie ceci:
    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
    19
    20
    21
    22
    23
     
        // Cette méthode est utilisé chaque fois qu'une cellule doit être rendu
        // dans une colonne qui utilise ce "renderer".
        public Component getTableCellRendererComponent(JTable jTable1, Object value,
                boolean isSelected, boolean hasFocus, int rowIndex, int colIndex) {
            // la cellule qui sera rendue est localisée à (rowIndex, colIndex)
     
            if (isSelected) {
                // la cellule est sélectionnée (et peut-être d'autres cellules également)
            }
     
            if (hasFocus) {
                // la cellule est l'ancre d'une table active
            }
    ...
     
            if ((jTable1.getValueAt(rowIndex, COL1).toString())
                    .compareTo(jTable1.getValueAt(rowIndex, COL2).toString()) > 0) {
                lab2.setIcon(up);
            } else {
                lab2.setIcon(down);
            }
    ...
    Merci uhrand pour ta reponse effectivement il fallait enlever la boucle je savais pas que getTableCellRendererComponent est appelée chaque fois qu'une cellule doit être rendu.
    thx.

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

Discussions similaires

  1. Gestion des images dans une table en OLE
    Par Ale74 dans le forum IHM
    Réponses: 9
    Dernier message: 22/03/2007, 15h55
  2. Réponses: 2
    Dernier message: 17/10/2006, 12h25
  3. Liaison avec des images dans une table
    Par ValérieBruxelles dans le forum Access
    Réponses: 5
    Dernier message: 25/11/2005, 15h21
  4. Inserer des données dans une table access SQL
    Par ouellet5 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 23/11/2005, 22h11
  5. inserer des images dans une base de données
    Par alilou04 dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/06/2004, 19h54

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