Index: src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java
===================================================================
--- src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java	(revision 16590)
+++ src/org/openstreetmap/josm/gui/preferences/display/ColorPreference.java	(working copy)
@@ -53,6 +53,7 @@
 import org.openstreetmap.josm.gui.preferences.SubPreferenceSetting;
 import org.openstreetmap.josm.gui.preferences.TabPreferenceSetting;
 import org.openstreetmap.josm.gui.util.GuiHelper;
+import org.openstreetmap.josm.gui.widgets.FilterField;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
 import org.openstreetmap.josm.tools.ColorHelper;
 import org.openstreetmap.josm.tools.GBC;
@@ -76,6 +77,7 @@
         }
     }
 
+    private FilterField colorFilter;
     private ColorTableModel tableModel;
     private JTable colors;
 
@@ -137,6 +139,12 @@
             return new NamedColorProperty(info.getCategory(), info.getSource(),
                     info.getName(), info.getDefaultValue());
         }
+
+        @Override
+        public String toString() {
+            return new StringBuilder(super.toString()).append(" [").append(getDisplay())
+                    .append(' ').append(ColorHelper.color2html(getDisplayColor())).append(']').toString();
+        }
     }
 
     private static class ColorTableModel extends AbstractTableModel {
@@ -299,6 +307,8 @@
         defaultSet.setEnabled(false);
 
         colors = new JTable(tableModel);
+        colors.setAutoCreateRowSorter(true);
+        colorFilter = new FilterField().filter(colors, tableModel);
         colors.addMouseListener(new MouseAdapter() {
             @Override
             public void mousePressed(MouseEvent me) {
@@ -352,6 +362,7 @@
 
         JPanel panel = new JPanel(new GridBagLayout());
         panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
+        panel.add(colorFilter, GBC.eol().fill(GBC.HORIZONTAL));
         JScrollPane scrollpane = new JScrollPane(colors);
         scrollpane.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
         panel.add(scrollpane, GBC.eol().fill(GBC.BOTH));
