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 :

JTable et couleur cellule


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut JTable et couleur cellule
    je vient de commencer mon premier exemple avec JTable et des le premier essaie ,çà na pas marché

    je veut colorer la cellule sur la quelle on a cliqué alors j'ai fait ce petit programme ,mais pas de résultat. a parement ya quelque chose qui manque dans le 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
    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
    57
    58
    59
    import java.awt.Color;
    import java.awt.Component;
     
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.ListSelectionModel;
    import javax.swing.event.ListSelectionEvent;
    import javax.swing.event.ListSelectionListener;
    import javax.swing.table.TableCellRenderer;
     
     
     
    public class JTableListSelectionListener 
    {
     
      public static void main(String[] a) 
      {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
        final JTable table;
     
        String[] columnTitles = { "A", "B", "C", "D" };
        Object[][] rowData = { { "1", "2", "3", "4" }, { "1", "2", "3", "4"  },{ "1", "2", "3", "4"  }, { "1", "2", "3", "4" } };
     
        table = new JTable(rowData, columnTitles);
     
        table.setCellSelectionEnabled(true);
     
    	table.setDefaultRenderer(Color.class,new MonAfficheurCelluleCouleur());
     
        ListSelectionModel cellSelectionModel = table.getSelectionModel();
     
        cellSelectionModel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
     
        frame.add(new JScrollPane(table));
        frame.setSize(300, 200);
        frame.setVisible(true);
      }
     
    }
     
     
    class MonAfficheurCelluleCouleur extends JLabel implements TableCellRenderer
    {
    	public MonAfficheurCelluleCouleur()
    	{
    		this.setOpaque(true);
    	}
     
    	public Component getTableCellRendererComponent(JTable table,Object value, boolean isSelected, boolean hasFocus, int row,int col)
    	{
    	           setBackground(Color.yellow);
     
    	            return this;
    	}
    }

  2. #2
    Membre éprouvé
    Inscrit en
    Juin 2009
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juin 2009
    Messages : 138
    Par défaut
    Je pense qu'il faut que tu utilises la méthode setSelectionBackground () plutôt que setBackGround ()...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setSelectionBackground (Color.YELLOW)

  3. #3
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    Citation Envoyé par bého32 Voir le message
    Je pense qu'il faut que tu utilises la méthode setSelectionBackground () plutôt que setBackGround ()...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setSelectionBackground (Color.YELLOW)

    je pense pas car j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonAfficheurCelluleCouleur extends JLabel

  4. #4
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Ton "MonAfficheurCelluleCouleur" ne sera utilisé que pour des objets de type "Color". Or tu ne mets aucun objet de type "Color" dans ta JTable
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  5. #5
    Membre éprouvé
    Inscrit en
    Juin 2009
    Messages
    138
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Juin 2009
    Messages : 138
    Par défaut
    Au temps pour moi...

    Citation Envoyé par dinobogan Voir le message
    Ton "MonAfficheurCelluleCouleur" ne sera utilisé que pour des objets de type "Color". Or tu ne mets aucun objet de type "Color" dans ta JTable
    En effet, il faut que tu utilises ton MonAfficheurCelluleCouleur sur des éléments de type Object, et ça devrait mieux marcher...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    table.setDefaultRenderer(Object.class,new MonAfficheurCelluleCouleur());

  6. #6
    Membre Expert
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Par défaut
    Citation Envoyé par bého32 Voir le message
    Au temps pour moi...



    En effet, il faut que tu utilises ton MonAfficheurCelluleCouleur sur des éléments de type Object, et ça devrait mieux marcher...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    table.setDefaultRenderer(Object.class,new MonAfficheurCelluleCouleur());
    j'ai déjà essayé avant de poster ,et ça me met tout les cellules en jaune

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/06/2011, 13h12
  2. [Swing / JTable] Rendre les cellules d'un JTable non éditables
    Par Jérôme_20 dans le forum Composants
    Réponses: 20
    Dernier message: 10/02/2011, 10h32
  3. JTable et couleurs des cellules
    Par maxime_c dans le forum Composants
    Réponses: 7
    Dernier message: 17/03/2009, 09h48
  4. [JTable] Fond de cellule couleur dégradée
    Par zuzuu dans le forum Composants
    Réponses: 9
    Dernier message: 13/01/2009, 22h49
  5. Réponses: 9
    Dernier message: 12/08/2002, 07h38

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