ArrayList grafisch darstellen (mit Bild, ListCellRenderer?)

Hier mal ein Quick’n-Dirty Beispiel wie du mit einem cell-renderer

package de.jfruit;

import javax.swing.*;
import java.awt.*;
import java.util.*;
import java.util.List;

public class SampleRenderer {

    public static void main(String[] args) {
        final JFrame frame = new JFrame("Sample Renderer");
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        JList list = new JList();

        DefaultListModel model = new DefaultListModel();
        model.addElement(Arrays.asList("Karl", "heiner", "abc"));
        model.addElement(Arrays.asList("def", "k"));
        list.setCellRenderer(new MyListRenderer());
        list.setModel(model);

        frame.add(list);

        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                frame.setLocationRelativeTo(null);
                frame.setSize(600, 300);
                frame.setVisible(true);
            }
        });
    }
}


class MyListRenderer extends DefaultListCellRenderer {
    @Override
    public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
        if(!(value instanceof List)) return super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);

        List liste = (List) value;

        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(0,2));

        for(int i = 0; i < liste.size(); i++) {
            panel.add(new JLabel("Eintrag: " + i));
            panel.add(new JLabel(liste.get(i).toString()));
        }

        if(index % 2 == 0) {
            panel.setBackground(Color.CYAN);
        }

        return panel;
    }
}