日期:2014-05-20  浏览次数:20740 次

向JList中添加JPanel,JPaen不可编辑的问题。
我在向JList中添加JPanel时,JPanel变得不可编辑了,是为什么啊,怎么解决掉???
我测试的时候,发现JPanel根本就没有办法监听到事件,即响应不了鼠标的点击事件。

------解决方案--------------------
为什么要向jlist里面添加jpanel?如果真需要这么做,就需要重写Renderer,如:
class MyCellRenderer extends JLabel implements ListCellRenderer {
final static ImageIcon longIcon = new ImageIcon("long.gif");
final static ImageIcon shortIcon = new ImageIcon("short.gif");
public Component getListCellRendererComponent(
JList list,
Object value, // value to display
int index, // cell index
boolean isSelected, // is the cell selected
boolean cellHasFocus) // the list and the cell have the focus
{
String s = value.toString();
setText(s);
setIcon((s.length() > 10) ? longIcon : shortIcon);
if (isSelected) {
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
}
else {
setBackground(list.getBackground());
setForeground(list.getForeground());
}
setEnabled(list.isEnabled());
setFont(list.getFont());
setOpaque(true);
return this;
}
 }

 String[] data = {"one", "two", "three", "four"};
 JList dataList = new JList(data);
 dataList.setCellRenderer(new MyCellRenderer());