62,614
社区成员
发帖
与我相关
我的任务
分享
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);