首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

高手,在JComboBox 列表的每一项后面加下小图标,点击小图标,删除这一项

2012-09-08 
高手请指教,在JComboBox 列表的每一项后面加上小图标,点击小图标,删除这一项我想是不是可以把每一项后面加

高手请指教,在JComboBox 列表的每一项后面加上小图标,点击小图标,删除这一项
我想是不是可以把每一项后面加上一个有图标的JLabel,可是又不知道怎么加得上去,请高手指点迷津,要怎么才能够实现 啊
最好详细一点,谢谢!!

[解决办法]
你需要实现ListCellRenderer接口。它是控制combobox弹出的List,并非控制JComboBox的。

下面的代码,你可以参考下:

Java code
protected DefaultListCellRenderer defaultRenderer = new DefaultListCellRenderer();  public Component getListCellRendererComponent(JList list, Object value, int index,      boolean isSelected, boolean cellHasFocus) {    Font theFont = null;    Color theForeground = null;    Icon theIcon = null;    String theText = null;    JLabel renderer = (JLabel) defaultRenderer.getListCellRendererComponent(list, value, index,        isSelected, cellHasFocus);    if (value instanceof Object[]) {      Object values[] = (Object[]) value;      theFont = (Font) values[0];      theForeground = (Color) values[1];      theIcon = (Icon) values[2];      theText = (String) values[3];    } else {      theFont = list.getFont();      theForeground = list.getForeground();      theText = "";    }    if (!isSelected) {      renderer.setForeground(theForeground);    }    if (theIcon != null) {      renderer.setIcon(theIcon);    }    renderer.setText(theText);    renderer.setFont(theFont);    return renderer;  } 

热点排行