Bonjour,
Alors voici mon problème :
Mon interface dispose entre autres d'une JTable et d'un JButton. Lorsque je clique sur mon bouton je modifie la couleur ( par exemple rouge ) d'une cellule de la ligne 8,colonne 1 comme je le souhaite.
Par contre si après je clique sur une autre cellule de la même colonne, toute les cellules de cette colonne prennent la couleur rouge.
Le code est le suivant :
Classe appelante :
Classe ColorCellRenderer :
Code : Sélectionner tout - Visualiser dans une fenêtre à part table.getColumnModel().getColumn(1).setCellRenderer(new ColorCellRenderer(table,getModel(),essai,boxcouleur.getSelectedItem().toString(),Integer.parseInt(boxposition.getSelectedItem().toString()),8));
classe ModelTable :
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
20
21
22
23
24
25
26
27
28 public ColorCellRenderer(JTable table,ModelTable model,int essai, String couleur, int column, int row){ if(model != null){ this.model = model; } this.row = row; this.column = column; this.essai = essai; color = getcouleur(couleur); getTableCellRendererComponent(table,null,false,false,this.row,this.column); } @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { setBackground(null); super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); if ((color!=null) && model.isCellEditable(this.row, this.column)){ setBackground(color); model.fireTableCellUpdated(this.row,this.column); }else{ //TODO } return this; }
Quelle pourrait-être la solution ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 @Override public boolean isCellEditable(int rowIndex, int columnIndex){ if (rowIndex==8){ return true; }else{ return false; } }
Je pensais à travailler sur la méthode isCellEditable ou à rendre les clics de souris sur la JTable sans effet.
Partager