/**
*
*/
package de.tutorials;
import java.awt.Color;
import java.awt.Component;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
/**
* @author Administrator
*
*/
public class JTableColorerExample extends JFrame {
private JTable table;
private int colorClm = -1, colorRow = -1;
private static String[] header = { "Header 1", "Header 2", "Header 3" };
private static Object[][] data = { { "A", "B", "C" }, { "D", "E", "F" },
{ "G", "H", "I" } };
public JTableColorerExample() {
super("JTableColorerExample");
setDefaultCloseOperation(EXIT_ON_CLOSE);
table = new JTable(data, header);
table.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent evt) {
Point p = evt.getPoint();
colorRow = table.rowAtPoint(p);
colorClm = table.columnAtPoint(p);
}
});
table.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus,
int row, int column) {
Component c = super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column);
if (row == colorRow && column == colorClm) {
setBackground(Color.RED);
} else {
setBackground(Color.WHITE);
}
return this;
}
});
add(new JScrollPane(table) {
{
setPreferredSize(table.getPreferredSize());
}
});
pack();
setVisible(true);
}
/**
* @param args
*/
public static void main(String[] args) {
new JTableColorerExample();
}
}