@Override public Component getTableCellRendererComponent( JTable table, Object object, boolean isSelected, boolean hasFocus, int row, int col) { String str; switch (col) { case 0: str = Util.timeToString((LogEntry) object); break; case 1: str = Util.levelToString((LogEntry) object); break; case 2: String message = ((LogEntry) object).getMessage(); str = message != null ? message.split(";;")[0] : null; break; default: str = "N/A"; } JLabel cell = new JLabel("" + str); if (col == 2) { Font font = new Font("Sans-serif", Font.BOLD, 12); cell.setFont(font); } cell.setOpaque(true); if (hasFocus) { cell.setBackground(GREY_SAND); } else if (isSelected) { cell.setBackground(Color.LIGHT_GRAY); } else if ((row % 2) == 0) { cell.setBackground(LIGHT_BLUE); } else { cell.setBackground(Color.WHITE); } return cell; }