Как изменить цвет определенного индекса с помощью JList, мне удается изменить цвет, но он меняет цвет всего списка, и мне нужно иметь возможность изменять конкретный индекс индекс к одному цвету, а другой - к другому.Изменение цвета конкретного индекса с помощью JList
Я пробовал довольно много комбинаций, и они, кажется, меняют весь цвет списка вместо индекса. Я понимаю, почему, поскольку он относится ко всему списку, я просто не знаю, как его изменить для определенного индекса.
m.aList.setCellRenderer(new MyCellRender());
private class MyCellRender extends DefaultListCellRenderer
{
public Component getListCellRendererComponent(JList list,
Object value, int index, boolean isSelected,
boolean cellHasFocus)
{
super.getListCellRendererComponent(list, value, index,
isSelected, cellHasFocus);
ArrayList<Object> values = new ArrayList<>();
ArrayList<String> complete = new ArrayList<>();
ArrayList<String> incomplete = new ArrayList<>();
for (int i = 0; i < list.getModel().getSize(); i++) {
values.add(list.getModel().getElementAt(i));
}
for (Object o : values) {
if (o.toString().contains("COMPLETED")) {
complete.add(o.toString());
}
if (o.toString().contains("INCOMPLETE")) {
incomplete.add(o.toString());
}
}
for (String s : complete) {
setForeground(Color.green);
}
for (String s1 : incomplete) {
setForeground(Color.red);
}
return(this);
}
}
Значения в списке содержат либо ЗАВЕРШЕНА или неполно, и я хотел бы изменить свой цвет в зависимости от их стоимости.
Посмотрите на 'ListCellRenderers' – Reimeus
Я использую ListCellRenderer, это фрагмент кода, который я пытаюсь использовать для изменения цвета, однако он меняет цвет всего списка вместо индекса Я хочу, чтобы – user1848712
затем опубликовал полный 'SSCCE' вашего кода, чтобы показать, как эта проблема возникает. – Reimeus