Bonjour!

Alors j'ai un petit problème avec une jTable! En effet, j'aimerais pouvoir griser toute la première colonne et toute la première ligne de ma JTable. Je sais qu'il faut créer une classe héritant de TableCellRenderer mais j'ai vraiment du mal à voir comment tout marche et les tutos sur le net sont assez flous.

Voici le code que j'ai pour l'instant.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public void actionPerformed(java.awt.event.ActionEvent e) {
	int t= (s.getTailleMemoire()/64)+2;
	int val=0;
	modele=new VueMemModele(t);
	jTable.setModel(modele);
	modele.setValueAt("   ",0,0);
	for(int i=1;i<t;i++){
		modele.setValueAt(val, i, 0);
		val=val+64;
	}
	//modifie la largeur de la première colonne
	TableColumn c = jTable.getColumnModel().getColumn(jTable.convertColumnIndexToView(0));
	c.setResizable(false);
	c.setMinWidth(30);
VueMemModele est bien entendu un extend de AbstractTable model et j'ai mis par défaut le nombre de colonnes à 64 du coup je lui donne pas de String header[] dans le constructeur vu que je vais pas m'en servir (j'utilise pas de JscrollPanel et du coup il faudrait que j'ajoute manuellement les headers et ce serait bordellique ^^)

Du coup, je supose que je dois faire un truc de ce style (code trouvé sur internet):

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
public class MyTCRenderer 
    extends JLabel
    implements TableCellRenderer {
 
    public Component getTableCellRendererComponent(
        JTable table, Object value,
        boolean isSelected, boolean hasFocus,
        int row, int column) {
 
        if (value.equals("disable me")) {
            setEnabled(false);
        }
        else
            setEnabled(true);
 
        setText((String)value);
        // other stuff...
    }
}
Seulement je vois pas trop comment appliquer cela à ma colonne "c" ni si c'est juste.

Merci d'avance pour les aides éventuelles!