Griser des lignes et des colonnes sur une JTable
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:
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:
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!