Cómo insertar una imagen en una celda JTable

¿Puede alguien señalarme en la dirección correcta sobre cómo agregar una imagen en la celda de la tabla Java?

JTable ya proporciona un procesador de icons predeterminado. Solo necesita decirle a la tabla qué datos se almacenan en una columna determinada para que pueda elegir el renderizador apropiado. Esto se hace anulando el método getColumnClass (…):

import java.awt.*; import javax.swing.*; import javax.swing.table.*; public class TableIcon extends JPanel { public TableIcon() { Icon aboutIcon = new ImageIcon("about16.gif"); Icon addIcon = new ImageIcon("add16.gif"); Icon copyIcon = new ImageIcon("copy16.gif"); String[] columnNames = {"Picture", "Description"}; Object[][] data = { {aboutIcon, "About"}, {addIcon, "Add"}, {copyIcon, "Copy"}, }; DefaultTableModel model = new DefaultTableModel(data, columnNames) { // Returning the Class of each column will allow different // renderers to be used based on Class public Class getColumnClass(int column) { return getValueAt(0, column).getClass(); } }; JTable table = new JTable( model ); table.setPreferredScrollableViewportSize(table.getPreferredSize()); JScrollPane scrollPane = new JScrollPane( table ); add( scrollPane ); } private static void createAndShowGUI() { JFrame frame = new JFrame("Table Icon"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(new TableIcon()); frame.setLocationByPlatform( true ); frame.pack(); frame.setVisible( true ); } public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { createAndShowGUI(); } }); } } 

Cree el imageicon por adelantado:

 ImageIcon icon = new ImageIcon("image.gif"); table.setValueAt(icon, row, column); 

O puede intentar anular el renderizador para su campo de icono:

 static class IconRenderer extends DefaultTableCellRenderer { public IconRenderer() { super(); } public void setValue(Object value) { if (value == null) { setText(""); } else { setIcon(value); } }