Uso um renderer como esse para de acordo com um dado, exibir um icone na JTable:
[code]ublic class TestCellRenderer extends JLabel implements TableCellRenderer {
List list=null;
public TestCellRenderer(List l){
super();
this.list=l;
}
@Override
public Component getTableCellRendererComponent(JTable table, Object object,boolean isSelected, boolean hasFocus, int row, int column) {
Student s=list.get(row);
if(s.getPoints()>=90)
setIcon(new ImageIcon(getClass().getResource(okay_path)));
if(s.getPoints()<90)
setIcon(new ImageIcon(getClass().getResource(error_path)));
}
setHorizontalAlignment(JLabel.CENTER);
return this;
}
}[/code]
Que funciona 100% quando eu carrego os dados para a JTable e mostra o ícone perfeitamente.Meu problema começa quando eu clico na linha da JTable e eu preciso editar esses dados.Dependendo do valor, a imagem será mudada.Mas eu nunca consigo atualizar o JLabel no model da minha JTable.
tentei forçar, mas não muda a imagem a não ser que eu feche a tela e entre de novo:
public JLabel setJLabel(int value){
JLabel l=new JLabel();
if(value>=90)
l.setIcon(new ImageIcon(getClass().getResource("...successpath")));
else if(value<90)
l.setIcon(new ImageIcon(getClass().getResource("...failedpath")));
return l;
}
no meu setData:
s.setRate(setJLabel(c.getRate()));
Mas nada funcionou.