Bojour à tous...
Pour que mon Tableau de bord (crée en JTable) soit plus lisible je compte colorer certaines cellules suite à la vérification de certaines conditions...
Comment je pourrais le faire?
Bojour à tous...
Pour que mon Tableau de bord (crée en JTable) soit plus lisible je compte colorer certaines cellules suite à la vérification de certaines conditions...
Comment je pourrais le faire?
Bonjour,
Pour ma part, je m'intéresserais à la classe DefaultTableCellRenderer .
En effet celle ci permet de redéfinir le comportement de tes cellules.
Imaginons que tu veuilles colorier en rouge, toutes les cellules comportant comme texte "toto".
Je ne suis pas sur de mon code, n'ayant pas d'environnement propice pour le testé.
Pour appliquer un renderer a une JTable je te renvois a la FAQ :FAQ GUI.
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 public class ColorCellRenderer extends DefaultTableCellRenderer { public ColorCellRenderer(){ } @Override public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) { // on utilise le renderer super qui va tenir compte de // tout ce qu'on a besoin (sélection, focus) Component comp = super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, col); // On récupère le contenu du model en fonction de la colonne/ligne String s = table.getModel().getValueAt(row, col).toString(); // On vérifie que le contenu suffit a notre condition if(s.equalsIgnoreCase("toto")) { // On applique le fond de couleur particulier. comp.setForeground(Color.red); } else { comp.setForeground(null); } return( comp ); } }
Bonjour
Merci vantom
Enfin ça parait simple...
Il faut que je définisses mapropre classe java qui définit l'affichage de mes cellules :
puis :
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 import java.awt.Color; import java.awt.Component; import javax.swing.JTable; import javax.swing.table.DefaultTableCellRenderer; public class MonCellRenderer extends DefaultTableCellRenderer { public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { Component cell = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if (row == 1 && column == 1) cell.setBackground(Color.CYAN); else cell.setBackground(Color.WHITE); return cell; } }
Et Merci encore
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 JTable table = new JTable(); table.setDefaultRenderer(Object.class, new MonCellRenderer());![]()
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager