 <p><code>DefaultTableCellRenderer</code> inherit from <code>JLabel</code> (that inherit from <code>JComponent</code>). So you can change the JLabel properties within <code>getTableCellRendererComponent</code>. </p> <p><a href="http://www.jguru.com/faq/view.jsp?EID=703279" rel="nofollow">For example</a> :</p> <pre><code>ImageIcon icon = new ImageIcon(getClass().getResource("images/moon.gif"));// prepared before public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { setText((String)value); setIcon(icon); return this; } </code></pre> <p><code>setText</code> come from the super JLabel class and <code>setIcon</code> from the super JComponent class.</p> <p>Almost all <code>DefaultTableCellRenderer</code> methods override method from these classes.</p>