Checkbox de couleurs

Checkbox de couleurs - Java - Programmation

Marsh Posté le 14-06-2007 à 14:06:32    

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 :
  1. tableModel = new TableModel(data, 6);
  2.         jTable1.setModel(tableModel);
  3.         jScrollPane1.setViewportView(jTable1);
  4.         TableCellRenderer centerRenderer = new TableCenterRenderer();
  5.         TableColumn column1 = jTable1.getColumnModel().getColumn(0);
  6.         column1.setCellRenderer( centerRenderer );
  7.         TableColumn column2 = jTable1.getColumnModel().getColumn(1);
  8.         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 :
  1. class TableCenterRenderer extends DefaultTableCellRenderer {
  2.     public TableCenterRenderer() {
  3.         setHorizontalAlignment(CENTER);
  4.     }
  5.    
  6.     public Component getTableCellRendererComponent(
  7.             JTable table, Object value,
  8.             boolean isSelected, boolean hasFocus,
  9.             int row, int column) {
  10.         super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
  11.        
  12.         if (row == 5 ) {
  13.             this.setBackground(Color.red);
  14.         } else {
  15.             this.setBackground(Color.white);
  16.         }
  17.        
  18.         return this;
  19.     }
  20. }

 
 
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
Reply

Marsh Posté le 14-06-2007 à 14:06:32   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed