Index: /trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 9223)
+++ /trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 9224)
@@ -50,5 +50,4 @@
 import javax.json.JsonWriter;
 import javax.swing.JOptionPane;
-import javax.swing.UIManager;
 import javax.xml.XMLConstants;
 import javax.xml.stream.XMLInputFactory;
@@ -1012,8 +1011,4 @@
     public synchronized Color getColor(String colName, Color def) {
         return getColor(colName, null, def);
-    }
-
-    public synchronized Color getUIColor(String colName) {
-        return UIManager.getColor(colName);
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 9223)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/LayerListDialog.java	(revision 9224)
@@ -1115,5 +1115,5 @@
                 }
                 if (c == null) {
-                    c = Main.pref.getUIColor(isSelected ? "Table.selectionForeground" : "Table.foreground");
+                    c = UIManager.getColor(isSelected ? "Table.selectionForeground" : "Table.foreground");
                 }
                 label.setForeground(c);
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/advanced/PreferencesTable.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/advanced/PreferencesTable.java	(revision 9223)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/advanced/PreferencesTable.java	(revision 9224)
@@ -24,4 +24,5 @@
 import javax.swing.JRadioButton;
 import javax.swing.JTable;
+import javax.swing.UIManager;
 import javax.swing.table.DefaultTableCellRenderer;
 import javax.swing.table.DefaultTableModel;
@@ -34,4 +35,5 @@
 import org.openstreetmap.josm.data.Preferences.StringSetting;
 import org.openstreetmap.josm.gui.ExtendedDialog;
+import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.gui.widgets.JosmTextField;
 import org.openstreetmap.josm.tools.GBC;
@@ -298,9 +300,8 @@
 
     private static class SettingCellRenderer extends DefaultTableCellRenderer {
-        private final Color backgroundColor = Main.pref.getUIColor("Table.background");
+        private final Color backgroundColor = UIManager.getColor("Table.background");
         private final Color changedColor = Main.pref.getColor(
                          marktr("Advanced Background: Changed"),
                          new Color(200, 255, 200));
-        private final Color foregroundColor = Main.pref.getUIColor("Table.foreground");
         private final Color nonDefaultColor = Main.pref.getColor(
                             marktr("Advanced Background: NonDefault"),
@@ -319,12 +320,9 @@
                     display, isSelected, hasFocus, row, column);
 
-            label.setBackground(backgroundColor);
-            if (isSelected) {
-                label.setForeground(foregroundColor);
-            }
+            GuiHelper.setBackgroundReadable(label, backgroundColor);
             if (pe.isChanged()) {
-                label.setBackground(changedColor);
+                GuiHelper.setBackgroundReadable(label, changedColor);
             } else if (!pe.isDefault()) {
-                label.setBackground(nonDefaultColor);
+                GuiHelper.setBackgroundReadable(label, nonDefaultColor);
             }
 
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java	(revision 9223)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java	(revision 9224)
@@ -37,4 +37,5 @@
 import javax.swing.JTable;
 import javax.swing.JToolBar;
+import javax.swing.UIManager;
 import javax.swing.event.ListSelectionEvent;
 import javax.swing.event.ListSelectionListener;
@@ -62,4 +63,5 @@
 import org.openstreetmap.josm.gui.preferences.PreferenceSettingFactory;
 import org.openstreetmap.josm.gui.preferences.PreferenceTabbedPane;
+import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.gui.widgets.JosmEditorPane;
 import org.openstreetmap.josm.tools.GBC;
@@ -248,13 +250,10 @@
                 JLabel label = (JLabel) super.getTableCellRendererComponent(
                         table, value, isSelected, hasFocus, row, column);
-                label.setBackground(Main.pref.getUIColor("Table.background"));
-                if (isSelected) {
-                    label.setForeground(Main.pref.getUIColor("Table.foreground"));
-                }
+                GuiHelper.setBackgroundReadable(label, UIManager.getColor("Table.background"));
                 if (value != null) { // Fix #8159
                     String t = value.toString();
                     for (ImageryInfo l : layers) {
                         if (l.getExtendedUrl().equals(t)) {
-                            label.setBackground(Main.pref.getColor(
+                            GuiHelper.setBackgroundReadable(label, Main.pref.getColor(
                                     marktr("Imagery Background: Default"),
                                     new Color(200, 255, 200)));
@@ -279,8 +278,5 @@
                 JLabel label = (JLabel) super.getTableCellRendererComponent(
                         table, info.getName(), isSelected, hasFocus, row, column);
-                label.setBackground(Main.pref.getUIColor("Table.background"));
-                if (isSelected) {
-                    label.setForeground(Main.pref.getUIColor("Table.foreground"));
-                }
+                GuiHelper.setBackgroundReadable(label, UIManager.getColor("Table.background"));
                 label.setToolTipText(info.getToolTipText());
                 return label;
Index: /trunk/src/org/openstreetmap/josm/gui/preferences/shortcut/PrefJPanel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/shortcut/PrefJPanel.java	(revision 9223)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/shortcut/PrefJPanel.java	(revision 9224)
@@ -33,4 +33,5 @@
 import javax.swing.RowFilter;
 import javax.swing.SwingConstants;
+import javax.swing.UIManager;
 import javax.swing.event.DocumentEvent;
 import javax.swing.event.DocumentListener;
@@ -44,4 +45,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.gui.widgets.JosmComboBox;
 import org.openstreetmap.josm.gui.widgets.JosmTextField;
@@ -169,14 +171,11 @@
             JLabel label = (JLabel) super.getTableCellRendererComponent(
                 table, name ? sc.getLongText() : sc.getKeyText(), isSelected, hasFocus, row, column);
-            label.setBackground(Main.pref.getUIColor("Table.background"));
-            if (isSelected) {
-                label.setForeground(Main.pref.getUIColor("Table.foreground"));
-            }
+            GuiHelper.setBackgroundReadable(label, UIManager.getColor("Table.background"));
             if (sc.isAssignedUser()) {
-                label.setBackground(Main.pref.getColor(
+                GuiHelper.setBackgroundReadable(label, Main.pref.getColor(
                         marktr("Shortcut Background: User"),
                         new Color(200, 255, 200)));
             } else if (!sc.isAssignedDefault()) {
-                label.setBackground(Main.pref.getColor(
+                GuiHelper.setBackgroundReadable(label, Main.pref.getColor(
                         marktr("Shortcut Background: Modified"),
                         new Color(255, 255, 200)));
