HI發生的事情,我有一個JList和賦予它cellRenderer的。但我無法選擇列表中的元素。實際上,它被選中,但在視覺上我們看不到它被選中意味着我無法看到列表中選擇了哪個項目。我的清單列表選擇不擺動
屏幕截圖:
和期望是什麼是
第二個截屏是沒有的CellRenderer。但是,當我添加CellRenderer我無法看到列表中選定的項目。
是再正常不過的行爲,當您添加的CellRenderer,要列出。
什麼我做錯了什麼???
編輯: -
這是我的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類。你能幫我找出那裏有什麼問題嗎? – 2011-01-27 07:11:03
您不設置渲染器的背景。您需要檢查isSelected變量並適當地設置背景。本教程有一個工作示例。花時間閱讀教程。 – camickr 2011-01-27 07:13:20