DefaultListModel l=(DefaultListModel ) list.getModel();
-------------------------------------------------------------------------------------
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.JList$3 cannot be cast to javax.swing.DefaultListModel这是什么情况,getmodel不是返回 ListModel么 怎么有JList$3?
-------------------------------------------------------------------------------------
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.JList$3 cannot be cast to javax.swing.DefaultListModel这是什么情况,getmodel不是返回 ListModel么 怎么有JList$3?
list里面的数据是怎么添加上去的?如果你是setListData这个方法。那么,必然不是DefaultListModel 。 public void setListData(final Object[] listData) {
setModel (
new AbstractListModel() {
public int getSize() { return listData.length; }
public Object getElementAt(int i) { return listData[i]; }
}
);
}
可以看到这里使用的是一个匿名内部内,根本不是什么DefaultListModel。返回的是ListModel不错,
JList$3这种标识是JList的内部类。这个你不会你有什么疑问吧?
我觉得getmodel是不是有相应的设置,就像C#里窗口分类一样
2)javax.swing.JList$3 是一个继承自AbstractListModel 的内部匿名类
参考源码: public JList(final Object[] listData)
{
this (
new AbstractListModel() {
public int getSize() { return listData.length; }
public Object getElementAt(int i) { return listData[i]; }
}
);
}