Have you tried writing your own, custom, ListCellRenderer?
When that method is asked to provide a cell-rendering component you get the following arguments:
public Component getListCellRendererComponent(JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus) {