我试图突出显示 JList 中与其他地方的数据“匹配”的所有行,并禁用该行。当我调试时,我可以看到在 cbNameIsMatched 中设置了正确的数据。但是,发生的情况是,在我创建第一个匹配项后,我在 JList 中选择的每一行都会突出显示,而不是具有“匹配”索引的行。这setEnabled
也是从列表末尾到我在列表中单击的所有项目的设置。
class MyListCellRenderer extends JLabel implements ListCellRenderer
{
public MyCopybookListCellRenderer()
{
setOpaque(false);
}
@Override
public Component getListCellRendererComponent(JList paramList, Object value,
int index, boolean isSelected, boolean cellHasFocus)
{
setText(value.toString());
if(isSelected)
{
setOpaque(true);
}
else
{
setOpaque(false);
}
if(cbNameIsMatched[index]==2)
{
setBackground(Color.YELLOW);
setEnabled(false);
}
myList.repaint();
return this;
}