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.
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 ^^)
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);
Du coup, je supose que je dois faire un truc de ce style (code trouvé sur internet):
Seulement je vois pas trop comment appliquer cela à ma colonne "c" ni si c'est juste.
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... } }
Merci d'avance pour les aides éventuelles!
Partager