Index: javax/swing/table/DefaultTableCellRenderer.java =================================================================== RCS file: /cvsroot/classpath/classpath/javax/swing/table/DefaultTableCellRenderer.java,v retrieving revision 1.19 diff -u -r1.19 DefaultTableCellRenderer.java --- javax/swing/table/DefaultTableCellRenderer.java 3 Nov 2005 22:06:11 -0000 1.19 +++ javax/swing/table/DefaultTableCellRenderer.java 3 Nov 2005 22:24:31 -0000 @@ -72,6 +72,16 @@ } /** + * Stores the color set by setForeground(). + */ + Color foreground; + + /** + * Stores the color set by setBackground(). + */ + Color background; + + /** * Creates a default table cell renderer with an empty border. */ public DefaultTableCellRenderer() @@ -87,6 +97,7 @@ public void setForeground(Color c) { super.setForeground(c); + foreground = c; } /** @@ -97,6 +108,7 @@ public void setBackground(Color c) { super.setBackground(c); + background = c; } /** @@ -146,16 +158,18 @@ } else { - setBackground(table.getBackground()); - setForeground(table.getForeground()); + if (background != null) + setBackground(background); + else + setBackground(table.getBackground()); + if (foreground != null) + setForeground(foreground); + else + setForeground(table.getForeground()); } if (hasFocus) - { - if (!(getBackground() instanceof ColorUIResource)) - setBackground(table.getBackground()); - setBorder(UIManager.getBorder("Table.focusCellHighlightBorder")); - } + setBorder(UIManager.getBorder("Table.focusCellHighlightBorder")); else setBorder(BorderFactory.createEmptyBorder(1, 1, 1, 1));