Index: /trunk/src/org/openstreetmap/josm/gui/preferences/imagery/CacheContentsPanel.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/preferences/imagery/CacheContentsPanel.java	(revision 8620)
+++ /trunk/src/org/openstreetmap/josm/gui/preferences/imagery/CacheContentsPanel.java	(revision 8621)
@@ -4,4 +4,5 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
+import java.awt.Color;
 import java.awt.Component;
 import java.awt.GridBagLayout;
@@ -29,4 +30,5 @@
 import javax.swing.JTable;
 import javax.swing.UIManager;
+import javax.swing.border.LineBorder;
 import javax.swing.table.DefaultTableModel;
 import javax.swing.table.TableCellEditor;
@@ -55,17 +57,28 @@
 public class CacheContentsPanel extends JPanel {
 
+    /**
+     *
+     * Class based on:  http://www.camick.com/java/source/ButtonColumn.java
+     * https://tips4java.wordpress.com/2009/07/12/table-button-column/
+     *
+     */
     private static final class ButtonColumn extends AbstractCellEditor implements TableCellRenderer, TableCellEditor, ActionListener {
         private final Action action;
         private final JButton renderButton;
+        private JButton editButton;
+        private Object editorValue;
 
         private ButtonColumn(Action action) {
             this.action = action;
             renderButton = new JButton();
-            renderButton.addActionListener(this);
+            editButton = new JButton();
+            editButton.setFocusPainted(false);
+            editButton.addActionListener(this);
+            editButton.setBorder(new LineBorder(Color.BLUE));
         }
 
         @Override
         public Object getCellEditorValue() {
-            return renderButton;
+            return editorValue;
         }
 
@@ -77,5 +90,17 @@
         @Override
         public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
-            return getTableCellRendererComponent(table, value, isSelected, false, row, column);
+            this.editorValue = value;
+            if (value == null) {
+                editButton.setText("");
+                editButton.setIcon(null);
+            } else if (value instanceof Icon) {
+                editButton.setText("");
+                editButton.setIcon((Icon) value);
+            } else {
+                editButton.setText(value.toString());
+                editButton.setIcon(null);
+            }
+            this.editorValue = value;
+            return editButton;
         }
 
@@ -83,11 +108,10 @@
         public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
                 boolean hasFocus, int row, int column) {
-
             if (isSelected) {
-                    renderButton.setForeground(table.getSelectionForeground());
-                    renderButton.setBackground(table.getSelectionBackground());
-            } else {
-                    renderButton.setForeground(table.getForeground());
-                    renderButton.setBackground(UIManager.getColor("Button.background"));
+                renderButton.setForeground(table.getSelectionForeground());
+                renderButton.setBackground(table.getSelectionBackground());
+            } else {
+                renderButton.setForeground(table.getForeground());
+                renderButton.setBackground(UIManager.getColor("Button.background"));
             }
 
@@ -95,12 +119,12 @@
 
             if (value == null) {
-                    renderButton.setText("");
-                    renderButton.setIcon(null);
+                renderButton.setText("");
+                renderButton.setIcon(null);
             } else if (value instanceof Icon) {
-                    renderButton.setText("");
-                    renderButton.setIcon((Icon) value);
-            } else {
-                    renderButton.setText(value.toString());
-                    renderButton.setIcon(null);
+                renderButton.setText("");
+                renderButton.setIcon((Icon) value);
+            } else {
+                renderButton.setText(value.toString());
+                renderButton.setIcon(null);
             }
             return renderButton;
@@ -109,5 +133,5 @@
     }
 
-    private transient ExecutorService executor = Executors.newSingleThreadExecutor();
+    private final transient ExecutorService executor = Executors.newSingleThreadExecutor();
 
     /**
