我想实现如下效果的JListMyListItem 就是MyListRenderer里JLabel的text和icon,还有checkbox的值
private String text ;
private boolean selected ;
private Icon icon ;以下是自己定义的ListCellRenderer
public class MyListRenderer extends JLabel implements MouseListener,
ListCellRenderer { private JList list = null;
private JCheckBox checkBox = null;
private JLabel label = null; public MyListRenderer(JList list) { this.list = list;
checkBox = new JCheckBox();
label = new JLabel();
add(checkBox);
add(label); } @Override
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
// TODO Auto-generated method stub
MyListItem item = (MyListItem)value;

label.setText(item.getItemText());
label.setIcon(item.getIconIterm());
checkBox.setSelected(item.getSelectEnable());

return this;
} @Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
int index = list.locationToIndex(e.getPoint());
MyListItem item = (MyListItem) list.getModel().getElementAt(index);
    if (((SelectEnable) item).getSelectEnable()) {
     System.out.println(item.getItemText());
    }
} @Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub } @Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub } @Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub } @Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub }}显示Icon icon = new ImageIcon("res/1.JPG");
MyListItem[] items = { new MyListItem("Astart"),
           new MyListItem("B-BIX", true, icon),
           new MyListItem("郁闷", false), 
           new MyListItem("abc", true),
           new MyListItem("12867831", false, icon),
}; JList jList = new JList(items);
jList.setCellRenderer(new MyListRenderer(jList));

JFrame frame = new JFrame();
frame.add(jList);
frame.setSize(200, 200);
frame.setVisible(true);