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?

解决方案 »

  1.   

    你有没有给list设置model?
    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的内部类。这个你不会你有什么疑问吧?
      

  2.   

    没有用过
    我觉得getmodel是不是有相应的设置,就像C#里窗口分类一样
      

  3.   

    1)返回的是 AbstractListModel 不是 DefaultListModel;
    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]; }
                }
            );
        }
      

  4.   

    检查代码发现确实是落了设置model