00001 package DisplayGUI;
00002
00003
00004
00005
00006
00007 import javax.swing.BorderFactory;
00008 import javax.swing.JLabel;
00009 import javax.swing.JTable;
00010 import javax.swing.border.Border;
00011 import javax.swing.table.TableCellRenderer;
00012 import java.awt.Color;
00013 import java.awt.Component;
00014
00015 public class ColorRenderer extends JLabel
00016 implements TableCellRenderer {
00017 Border unselectedBorder = null;
00018 Border selectedBorder = null;
00019 boolean isBordered = true;
00020
00021 public ColorRenderer(boolean isBordered) {
00022 this.isBordered = isBordered;
00023 setOpaque(true);
00024 }
00025
00026 public Component getTableCellRendererComponent(
00027 JTable table, Object color,
00028 boolean isSelected, boolean hasFocus,
00029 int row, int column) {
00030 Color newColor = (Color)color;
00031 setBackground(newColor);
00032 if (isBordered) {
00033 if (isSelected) {
00034 if (selectedBorder == null) {
00035 selectedBorder = BorderFactory.createMatteBorder(2,5,2,5,
00036 table.getSelectionBackground());
00037 }
00038 setBorder(selectedBorder);
00039 } else {
00040 if (unselectedBorder == null) {
00041 unselectedBorder = BorderFactory.createMatteBorder(2,5,2,5,
00042 table.getBackground());
00043 }
00044 setBorder(unselectedBorder);
00045 }
00046 }
00047
00048 setToolTipText("RGB value: " + newColor.getRed() + ", "
00049 + newColor.getGreen() + ", "
00050 + newColor.getBlue());
00051 return this;
00052 }
00053 }