package com.revolsys.swing.list.renderer; import java.awt.Color; import java.awt.Component; import javax.swing.DefaultListCellRenderer; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.UIManager; import javax.swing.border.Border; import javax.swing.border.EmptyBorder; public class LabelListCellRenderer extends DefaultListCellRenderer { /** * */ private static final long serialVersionUID = 1L; @Override public Component getListCellRendererComponent(final JList list, final Object value, final int index, final boolean isSelected, final boolean cellHasFocus) { if (value instanceof JLabel) { final JLabel label = (JLabel)value; label.setOpaque(true); label.setComponentOrientation(list.getComponentOrientation()); final Color bg = null; final Color fg = null; if (isSelected) { label.setBackground(bg == null ? list.getSelectionBackground() : bg); label.setForeground(fg == null ? list.getSelectionForeground() : fg); } else { label.setBackground(list.getBackground()); label.setForeground(list.getForeground()); } label.setEnabled(list.isEnabled()); label.setFont(list.getFont()); Border border = null; if (cellHasFocus) { if (isSelected) { border = UIManager.getBorder("List.focusSelectedCellHighlightBorder"); } if (border == null) { border = UIManager.getBorder("List.focusCellHighlightBorder"); } } else { border = new EmptyBorder(1, 1, 1, 1); } label.setBorder(border); return label; } else { return super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); } } }