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 が含まれており、値に応じて色を変更したいと考えています。