他の場所のデータと「一致」した 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;
}