HI、私はJLISTを持っていて、それにcellRendererを割り当てました。しかし、私はリストの要素を選択することができませんでした。実際には選択されていますが、視覚的には選択されていることがわかりません。リスト内で選択されている項目が表示されていないことを意味します。私のリストのスウィングでリスト選択が行われていない
スクリーンショット:
、何が期待されて第2のスクリーンショットはCellRendererのなしで
です。しかし、CellRendererを追加すると、選択したアイテムがリストに表示されませんでした。
CellRendererをリストに追加すると、通常の動作になります。
何が間違っていますか?
EDIT: -
これは私のCellRendererクラスです:
public class ContactsRender extends JLabel implements ListCellRenderer {
private static final long serialVersionUID = 1L;
ImageIcon img;
public ContactsRender(){
setOpaque(true);
setIconTextGap(12);
setBackground(Color.WHITE);
setForeground(Color.black);
}
@Override
public Component getListCellRendererComponent(JList list,
Object value, int index, boolean isSelected,
boolean cellHasFocus) {
if(value != null){
User user = (User) value;
String pres = user.getPresence().toLowerCase();
if(pres.contains("unavailable")){
img = new ImageIcon("res/offline.jpg");
} else {
img = new ImageIcon("res/online.jpg");
}
setText(user.getName());
setIcon(img);
return this;
}
return null;
}
私の質問に私のCellRendererクラスを追加しました。あなたは私が間違っていることを見つけるのを助けることができますか? –
レンダラーの背景を設定しません。 isSelected変数をチェックし、背景を適切に設定する必要があります。チュートリアルには実例があります。時間をかけてチュートリアルを読んでください。 – camickr
thnx私はそれが働いた。 –