Other font in JTable cell

While doing some research, I was looking for an efficient way to change the font inside a JTable. I have made my own TableCellRenderer’s before, but while googling I came across the following link:

http://www.exampledepot.com/egs/javax.swing.table/CustRend.html

Beside the fact I wanted to make a certain cell italic, the last few lines somehow intrigued me to find out more about the author of this Java Developers Almanac, which is Patrick Chan. Great book, but not really my kinda book. Anyway, here is the TableCellRenderer which can be used to create a column in a JTable which has an italic font (thus another font, which I was looking for) :

import java.awt.Component;
import java.awt.Font;
import javax.swing.JLabel;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.border.Border;
import javax.swing.border.EmptyBorder;
import javax.swing.table.TableCellRenderer;

public class TableCellRenderer_Italic extends JLabel implements TableCellRenderer {
    // used to pad the cell when it does not have focus
    protected static Border normalBorder = new EmptyBorder(1, 1, 1, 1);

    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
        if(isSelected) {
            setForeground(table.getSelectionForeground());
            setBackground(table.getSelectionBackground());
        } else {
            setForeground(table.getForeground());
            setBackground(table.getBackground());
        }
        if(hasFocus) {
            setBorder(UIManager.getBorder("Table.focusCellHighlightBorder"));
        } else {
            setBorder(normalBorder);
        }
        setFont(new Font(this.getFont().getName(), Font.ITALIC, this.getFont().getSize()));
        setText(value.toString());
        return this;
    }
    // the following methods overide the defaults for performance reasons, lines thanks to Patrick Chan
    public void validate() {}
    public void revalidate() {}
    protected void firePropertyChange(String propertyName, Object oldValue, Object newValue) {}
    public void firePropertyChange(String propertyName, boolean oldValue, boolean newValue) {}
}

Note: to use it in another class:

private TableCellRenderer itaRenderer = new TableCellRenderer_Italic();
myTable.getColumnModel().getColumn(3).setCellRenderer(itaRenderer);