Imagem no jTable

Pessoal não estou conseguindo colocar imagem na celula da tabela
tenho o sequinte metodo

[code]public ArrayList list() throws SQLException{
ArrayList listar = new ArrayList<>();
stmt = connection.createStatement();
resultset = null;
try {
Icon editar = new ImageIcon(“D:/IMAGENS/editar.jpg”);
Icon excluir = new ImageIcon(“D:/IMAGENS/excluir.jpg”);

      PreparedStatement sql = connection.prepareStatement("SELECT * FROM Cursos");
   resultset = sql.executeQuery();
   while(resultset.next()){
    Cursos cliente = new Cursos();
        
        
    cliente.setId(resultset.getLong("ID"));
    cliente.setCursos(resultset.getString("Cursos"));
        cliente.setvEditar(editar);
        cliente.setvExcluir(excluir);
        listar.add(cliente);
 

        
        
        	    
   }
  } catch (SQLException e) {

}

 return listar;

}[/code]

Porem ao Invez de aparecer a imagem esta aparecendo o texto “D:/IMAGENS/editar.jpg”

o que esta de errado no metodo ?

Como está implementado seu TableModel?
E você adicionou um CellRenderer na célula em questão?

Estou implementando assim:

[code]
public Class<?> getColumnClass(int columnIndex){

    switch (columnIndex){  
        case 0:  
            return String.class;  
        case 1:  
            return String.class;  
        case 2:  
            return Image.class;  
        case 3:  
            return Image.class;  
        default:  
            throw new IndexOutOfBoundsException("ColumnIndex out of bounds");  
    }  
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
    Cursos curso = listacursos.get(rowIndex);
    switch(columnIndex){
        case 0: return curso.getId();
        case 1: return curso.getCursos();
        case 2: return curso.getvEditar();
        case 3: return curso.getvExcluir();
               
    
    }
    return null;[/code]

Classe JTableRenderer

[code]import javax.swing.ImageIcon;
import javax.swing.table.DefaultTableCellRenderer;

/**
*

  • @author dhenrique
    */
    public class JTableRenderer extends DefaultTableCellRenderer{
    @Override
    protected void setValue(Object value){
    if(value instanceof ImageIcon){
    if(value != null){
    ImageIcon d = (ImageIcon) value;
    setIcon(d);
    }else{
    setText("");
    setIcon(null);
    }

    }else{
    super.setValue(value);
    }

    }//fim função

}[/code]

E você chamou um:

seuTable.setDefaultRenderer(Image.class, new JTableRenderer());

em algum lugar?

Chamei não Viny…

onde devo exatamente chamar ?

Na verdade, esse renderer está errado também, você deveria sobrescrever o método getTableCellRendererComponent e não o setValue.

[quote=douglasduarte360]Chamei não Viny…

onde devo exatamente chamar ?[/quote]

Na criação da Tabela. Você tem que avisar a ela que para desenhar o Image.class é necessário usar esse Renderer aí. É esse método que “liga” a classe retornada pelo getColumnClass ao Renderer, entendeu?

Obrigado ViniGodoy consegui
só chamei o

jTableCursos.setDefaultRenderer(Image.class, new JTableRenderer()); 

no construtor da tabela e deu certo.