Main table test:
Code:
public class TestTable extends JFrame {
private Table table;
public TestTable() {
String[] columnNames = { "First Name", "Last Name", "Sport",
"# of Years", "Vegetarian" };
Object[][] rowData = {
{ "Kathy", "Smith", "Snowboarding", new Integer(5),
new Boolean(false) },
{ "John", "Doe", "Rowing", new Integer(3), new Boolean(true) },
{ "Joe", "Black", "Knitting", new Integer(2),
new Boolean(false) },
{ "Jane", "White", "Speed reading", new Integer(20),
new Boolean(true) },
{ "Joe", "Brown", "Pool", new Integer(10), new Boolean(false) } };
table = new Table(rowData, columnNames);
JScrollPane pane = new JScrollPane(table);
JButton selectButton = new JButton("Select");
selectButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
table.setSelect(true);
table.repaint();
}
});
JButton deselectButton = new JButton("Deselect");
deselectButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
table.setSelect(false);
table.repaint();
}
});
JPanel panel = new JPanel();
panel.add(pane);
panel.add(selectButton);
panel.add(deselectButton);
add(panel);
pack();
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new TestTable().setVisible(true);
}
});
}
}
Table:
Code:
public class Table extends JTable {
private Boolean select = false;
public Table(Object[][] rowData, Object[] columnNames) {
super(rowData, columnNames);
}
@Override
public Component prepareRenderer(TableCellRenderer renderer, int row,
int column) {
Component c = super.prepareRenderer(renderer, row, column);
JComponent jc = (JComponent) c;
jc.setForeground(Color.BLACK);
if (getModel().getValueAt(row, 0).toString().equals("Joe") && select)
jc.setForeground(Color.RED);
return c;
}
public void setSelect(Boolean select) {
this.select = select;
}
}