Bonjour, j'ai une Jtable qui contient 2 colonnes, la première contient des strings, et la seconde des booléens.
En fonction des lignes, je voudrais donner une couleur spéciale aux différentes lignes.
Mon code dans la classe principale.
Code :
- tableModel = new TableModel(data, 6);
- jTable1.setModel(tableModel);
- jScrollPane1.setViewportView(jTable1);
- TableCellRenderer centerRenderer = new TableCenterRenderer();
- TableColumn column1 = jTable1.getColumnModel().getColumn(0);
- column1.setCellRenderer( centerRenderer );
- TableColumn column2 = jTable1.getColumnModel().getColumn(1);
- column2.setCellRenderer( centerRenderer );
|
J'ai une classe TableModel extends AbstractTableModel pour bien définir ma table
et j'ai une classe TableRenderer pour paramétrer la couleur de ma case :
Code :
- class TableCenterRenderer extends DefaultTableCellRenderer {
- public TableCenterRenderer() {
- setHorizontalAlignment(CENTER);
- }
-
- public Component getTableCellRendererComponent(
- JTable table, Object value,
- boolean isSelected, boolean hasFocus,
- int row, int column) {
- super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
-
- if (row == 5 ) {
- this.setBackground(Color.red);
- } else {
- this.setBackground(Color.white);
- }
-
- return this;
- }
- }
|
Salon ce code, la 5e ligne devrait donc etre rouge, et les autres blanches.
Ca marche!
PROBLEME : en traitant ma colonne de booléens, et donc en affectant des couleurs, mes checkbox disparaissent au profit des valeurs "true" et "false" dans le tableau.
Si je n'effectue pas ce traitement, mes checkbox s'affichent correctement.
Merci si vous avez une idée :-)
Message édité par sedrilo le 14-06-2007 à 14:17:34