JTable + DefaultTableModel + Imagem em Cell

Bom dia pessoal,

Gostaria de poder colocar uma imagem dentro de uma determinada célula de um JTable. Eu determinaria a mesma pela posição na linha e coluna e adicionaria uma imagem. Acredito que a mesma seria colocada dentro de um JLabel.
A minha idéia é fazer, por exemplo:

__________________________________  
   Gerente      |     V
__________________________________
   Supervisor  |     X
__________________________________

Sendo que a segunda coluna teria na célula[1,2] uma imagem de V e na célula[2,2] uma imagem de um X. Este é apenas um exemplo simples.

Já tenho implementado o seguinte:
class JComponentTableCellRendererP implements TableCellRenderer {

    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {

        return (JComponent) value;

    }

}

public class Principal extends javax.swing.JFrame {

(...)

//----------------------------------------------------------------------------//
    private String headers_registro[] = { "Evento", "Status" };
    private final Object rows_registro[][] = { { " ", " " }, { " ", " " }, { " ", " " }};
    public DefaultTableCellRenderer renderer_registro = null;
    private Border headerBorder_registro = null;
    private TableCellRenderer cellrenderer_registro = new JComponentTableCellRendererP();
    public TableColumnModel columnModel_registro = null;
    private TableColumn column0_registro = null;
    private TableColumn column1_registro = null;
    private JLabel evento_registroLabel = null;
    private JLabel status_registroLabel = null;

    private DefaultTableModel modelo_registro = new DefaultTableModel(rows_registro, headers_registro){

        @Override
        public boolean isCellEditable(int row, int col){

             return false;

        }

    };
//----------------------------------------------------------------------------//   

(...)

private void popularTabelaRegistro(){
       
        String[] dados = null;
        dados = new String[2];
       
//-------------- ELIMINANDO TOTALMENTE TODAS AS LINHAS DA TABELA -------------//
        modelo_registro.getDataVector().removeAllElements();
//----------------------------------------------------------------------------//
       
        dados[0] = "Programa Inicializado"; // Evento
        dados[1] = dt.obterHora() + " - " + dt.obterData(); // Status
       
        modelo_registro.addRow(dados);
       
//----------------------- CENTRALIZANDO OS DADOS NO JTABLE -------------------//
        renderer_registro.setHorizontalAlignment(JLabel.CENTER);
//----------------------------------------------------------------------------//

(...)
Gostaria de apartir do que eu já tenho fazer a referida implementação das imagens no JTable. Desde já agradeço qualquer ajuda neste sentido.

Abraão

Bom dia.

Acho neste blog tem algo que pode ajudar:

http://trivial.4host.com.br/blog/criar-jcombobox-que-mostra-uma-imagem/

[]'s

faz algo do tipo…

pra duas colunas eu faria o seguinte…

tabela.addRow(new Object[]{ getGerente(), getImagem() }) //NA LINHA DEBAIXO tabela.addRow(new Object[]{getSupervisor(), getImagem() })

Que tal começar entendendo como o JTable funciona?

O primeiro passo para isso é se livrar do DefaultTableModel. Seu código vai ficar muito trabalhoso e bem menos eficiente com ele.

verifique este link: http://www.java2s.com/Code/Java/Swing-JFC/RenderinganimageinaJTablecollumn.htm

ele vai te resolver este problema…

Sem contar que…
Era uma vez no google, a busca por “image into jtable” e

Aproximadamente 410.000 resultados (0,06 segundos)