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 :

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 ColorCellRenderer :

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;
}
classe ModelTable :

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;
}
}
Quelle pourrait-être la solution ??

Je pensais à travailler sur la méthode isCellEditable ou à rendre les clics de souris sur la JTable sans effet.