How to resolve this error "java.lang.ClassCastException: javax.swing.JList$3 cannot be cast to javax.swing.DefaultListModel"

StackOverflow https://stackoverflow.com/questions/22161555

  •  19-10-2022
  •  | 
  •  

Question

Am getting the selected values from the drop down and adding into the jlist. But am getting this error for my fields only (datepicker field and another combo box field). I initialized and used default list model. Everytime am clearing my list before adding. But when i selected a value in my combo box it shows error as

4 Mar, 2014 7:39:23 AM adminscreen.taskallocationscreennew t_dateActionPerformed
SEVERE: null
java.lang.ClassCastException: javax.swing.JList$3 cannot be cast to javax.swing.DefaultListModel
    at adminscreen.taskallocationscreennew.t_dateActionPerformed(taskallocationscreennew.java:820)
    at adminscreen.taskallocationscreennew.access$600(taskallocationscreennew.java:50)
    at adminscreen.taskallocationscreennew$7.actionPerformed(taskallocationscreennew.java:579)
    at org.jdesktop.swingx.JXDatePicker.fireActionPerformed(JXDatePicker.java:876)
    at org.jdesktop.swingx.JXDatePicker.commitEdit(JXDatePicker.java:706)
    at org.jdesktop.swingx.plaf.basic.BasicDatePickerUI.commit(BasicDatePickerUI.java:901)
    at org.jdesktop.swingx.plaf.basic.BasicDatePickerUI$Handler.monthViewActionPerformed(BasicDatePickerUI.java:1374)
    at org.jdesktop.swingx.plaf.basic.BasicDatePickerUI$Handler.actionPerformed(BasicDatePickerUI.java:1349)
    at org.jdesktop.swingx.JXMonthView.fireActionPerformed(JXMonthView.java:1797)
    at org.jdesktop.swingx.JXMonthView.commitSelection(JXMonthView.java:1695)
    at org.jdesktop.swingx.plaf.basic.BasicMonthViewUI$Handler.mouseReleased(BasicMonthViewUI.java:2075)
    at java.awt.Component.processMouseEvent(Component.java:6267)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:6032)
    at java.awt.Container.processEvent(Container.java:2041)
    at java.awt.Component.dispatchEventImpl(Component.java:4630)
    at java.awt.Container.dispatchEventImpl(Container.java:2099)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
    at java.awt.Container.dispatchEventImpl(Container.java:2085)
    at java.awt.Window.dispatchEventImpl(Window.java:2478)
    at java.awt.Component.dispatchEvent(Component.java:4460)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Below is my code:

   private void d_pagetypeActionPerformed(java.awt.event.ActionEvent evt)          {                                           
    // TODO add your handling code here:
   System.out.println("d_pagetype"+d_pagetype.getSelectedItem());

   try {

            if(l_storieslist.getModel() != null)
            {
        ((DefaultListModel) l_storieslist.getModel()).clear();
        listf(directoryName);
            }

            else
            {
            }
    } catch (Exception ex) {
        Logger.getLogger(taskallocationscreennew.class.getName()).log(Level.SEVERE, null, ex);
    }
    l_storieslist.setModel(fileNameList);
    l_storieslist.setBackground(Color.WHITE);

}

No correct solution

OTHER TIPS

In the following line:

l_storieslist.setModel(fileNameList);

fileNameList is instance of JList, it should be instance of DefaultListModel.

Probably you don't need to set the model again. Instead do the operation on the existing model. You can get the reference to the existing model like you did in your code

ListModel model = l_storieslist.getModel();

and perform operations of adding/removing whatever list items you want.

The model should be set at List initialization (spotted here)

by default, it uses an innerclass impl for model, you need to set DefaultListModel explicitly while constructing the list!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top