package com.revolsys.swing.component; import java.awt.Component; import java.util.HashMap; import java.util.Map; import javax.swing.Icon; import javax.swing.JList; import javax.swing.plaf.basic.BasicComboBoxRenderer; public class JLabelListCellRenderer extends BasicComboBoxRenderer { /** * */ private static final long serialVersionUID = -8014837570227669960L; private final Map<Object, Icon> icons = new HashMap<>(); private final Map<Object, String> labels = new HashMap<>(); @Override public Component getListCellRendererComponent(final JList list, final Object value, final int index, final boolean isSelected, final boolean cellHasFocus) { super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); final String label = this.labels.get(value); if (label != null) { setText(label); } final Icon icon = this.icons.get(value); setIcon(icon); return this; } public void setIcon(final Object value, final Icon icon) { this.icons.put(value, icon); } public void setLabel(final Object value, final String label) { this.labels.put(value, label); } public void setLabel(final Object value, final String label, final Icon icon) { this.labels.put(value, label); this.icons.put(value, icon); } }