Colorer une cellule de jTable sur java

[Fermé]
Signaler
-
 ninojo -
Bonjour,
je veut colorer une cellule de jTable sur java sans utiliser le model du table, je veut une methode directe, merci

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 ;-)
14
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

j'ai pas bien compris, moi j'ai déjà une table qui est créée, et je veut colorer des cellules bien précises, merci de me errépondre
Messages postés
38574
Date d'inscription
jeudi 4 avril 2002
Statut
Modérateur
Dernière intervention
4 août 2021
1 993
Effectivement très bon exemple, merci !

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.
qu'est ce que vous voulez dire par la colonne vale 1 et la ligne 1??
j'ai essayé le code ça ma colore toute la ligne..
Salut
ce code colorer un seul ligne , je ne sais pas comment résolu ce probleme ?