Colorer une cellule de jTable sur java
NoooR
-
ninojo -
ninojo -
Bonjour,
je veut colorer une cellule de jTable sur java sans utiliser le model du table, je veut une methode directe, merci
je veut colorer une cellule de jTable sur java sans utiliser le model du table, je veut une methode directe, merci
Configuration: Windows XP Firefox 2.0.0.12
3 réponses
-
Il faut que tu définisses ta propre classe java qui définit l'affichage de tes cellules :
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.BLUE); else cell.setBackground(Color.WHITE); return cell; } }Ce code aura pour effet de colorer en bleu la case 1,1 et les autres en blanc.
Ensuite tu dis que ta table utilise ce CellRenderer :JTable table = new JTable(); table.setDefaultRenderer(Object.class, new MonCellRenderer());
Bonne continuation ;-) -
-
Si ta table est déjà créée alors tu rajoutes juste cette ligne de code :
table.setDefaultRenderer(Object.class, new MonCellRenderer());
à ta table.
La classe MonCellRenderer te permet de définir l'affichage de chaque case de ta table. Dans mon exemple, je teste si la ligne et la colonne valent 1 et dans ce cas je mets la couleur bleu. Dans les autres cas je mets du blanc. A toi de changer ma classe pour l'adapter à tes besoins.