Вам необходимо создать пользовательский CellRenderer
для объекта, который вы хотите визуализировать.По умолчанию JList покажет значение toString компонента (поскольку DefaultListCellRenderer расширяет JLabel).
class MyRenderer extends DefaultListCellRenderer {
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
Component c = super.getListCellRendererComponent(...);
setText(getValue(value)); // where getValue is some method you implement that gets the text you want to render for the component
return c;
}
Если вы не хотите отображать строку, создайте реализацию CellRenderer, которая возвращает компонент, который выхочу сделать.