Как сгенерировать Jlist с чередующимися цветами

В Java, как мне получить JList с чередующимися цветами? Любой пример кода?

Ответ 1

Чтобы настроить внешний вид ячеек JList, вам нужно написать собственную реализацию ListCellRenderer.

Пример реализации class может выглядеть так: (грубый эскиз, не проверенный)

public class MyListCellThing extends JLabel implements ListCellRenderer {

    public MyListCellThing() {
        setOpaque(true);
    }

    public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
        // Assumes the stuff in the list has a pretty toString
        setText(value.toString());

        // based on the index you set the color.  This produces the every other effect.
        if (index % 2 == 0) setBackground(Color.RED);
        else setBackground(Color.BLUE);

        return this;
    }
}

Чтобы использовать этот рендерер, в конструкторе JList введите этот код:

setCellRenderer(new MyListCellThing());

Чтобы изменить поведение ячейки на основе выбранного и сфокусироваться, используйте предоставленные логические значения.