如何使用 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 );
}
}
列表中的值包含 COMPLETED 或 INCOMPLETE,我想根据它们的值更改它们的颜色。