これは私のListCellRenderer
です:
public class MyListCellRendererOTP extends DefaultListCellRenderer {
@Override
public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
Component cell = null;
if (value instanceof Domain) {
Domain domain = (Domain)value;
int status = domain.getStatus();
String naziv = domain.getNaziv();
int naziv1= domain.getId();
String naziv2=naziv+" "+naziv1;
ArrayList<Stavka> s=domain.getStavke();
int nasao=0;
for(int i=0;i<s.size();i++){
if(s.get(i).getTrazKol()!=s.get(i).getIzdKol()){nasao=1;}
}
cell = super.getListCellRendererComponent(list,naziv2,index, isSelected, cellHasFocus);
if(nasao==1){
cell.setBackground(Color.cyan);
}else{
cell.setBackground(Color.white);
}
if(isSelected){
cell.setBackground(Color.green);
}
}
return cell;
}
}
Jlist
ドメインが設定されたがあります。Domain
コードに示すように、クラスの特定のフィールドが異なる行の背景をレンダラーが変更するという考え方です。しかし、これは何らかの理由で機能していません。すべての行が影響を受けます。誰でも助けることができますか?