The following code sets different color on columns.
//All copyright reserved by www.kidslovepc.com
//No redistribution is allowed without author permission and a back
link to www.kidslovepc.com
// Example from http://www.kidslovepc.com
//www.kidslovepc.com is not responsible for your data loss or any damage.
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.table.*;
import javax.swing.*;
import java.awt.Color ;
import java.awt.Component;
class myCellRenderer implements TableCellRenderer
{
public Component getTableCellRendererComponent(JTable
table, Object value, boolean isSelected, boolean hasFocus,int
row, int column)
{
JLabel label=null;
switch (column)
{
case 0:
label=new JLabel(value.toString ());
label.setForeground(Color.red);
break;
case 1:
label=new JLabel(value.toString ());
label.setForeground(new Color(53,121,52));
break;
case 2:
label=new JLabel(value.toString ());
label.setForeground(Color.magenta);
break;
default:
label=new JLabel(value.toString ());
label.setForeground(Color.cyan );
break;
}
return label;
}
}
public class ColorTableDemo extends JPanel {
private boolean DEBUG = false;
public ColorTableDemo() {
super(new GridLayout(1,0));
String[] columnNames = {"First Name",
"Last Name",
"Class",
" Years",
"Retired"};
Object[][] data = {
{"Hugo", "Jone",
"Math", new Integer(12), new Boolean(false)},
{"Harry", "Potter",
"Musice", new Integer(8), new Boolean(true)},
{"Tom", "Sawyer",
"English", new Integer(19), new Boolean(false)},
{"Alice", "Wonder",
"Art", new Integer(22), new Boolean(true)},
{"Bill", "Bush",
"Sport", new Integer(10), new Boolean(false)}
};
final JTable table = new JTable(data, columnNames);
table.setPreferredScrollableViewportSize(new Dimension(500, 70));
int cols = table.getColumnCount();
myCellRenderer mcr=new myCellRenderer ();
TableColumn column;
int i;
for(i=0;i<cols;i++)
{
column=table.getColumnModel().getColumn(i);
column.setCellRenderer(mcr);
}
//Create the scroll pane and add the table
to it.
JScrollPane scrollPane = new JScrollPane(table);
//Add the scroll pane to this panel.
add(scrollPane);
}
public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
JFrame.setDefaultLookAndFeelDecorated(true);
//Create and set up the window.
JFrame frame = new JFrame("SimpleTableDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
ColorTableDemo newContentPane = new ColorTableDemo();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);
//Display the window.
frame.pack();
frame.setVisible(true);
}
}