Olá a todos…
Estou desenvolvendo um componente swing e estou com um pequeno problema.
Eu fiz uma classe que herda de JComboBox, uma outra classe que herda AbstractListModel e implementa ComboBoxModel.
Na classe que herda JComboBox eu estou precisando recuperar o combobox model criado por mim, porém estou com problemas para fazer tal cast. Estou fazendo da seguinte forma:
return ((LookupComboBoxModel) this.getModel()).getSelectedItem(
columnToReturn);
Este código compila sem problema, porém quando vou utilizá-lo a seguinte exceção é gerada:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.DefaultComboBoxModel cannot be cast to br.com.datamanager.core.swing.lookup.LookupComboBoxModel
at br.com.datamanager.core.swing.LookupComboBox.getSelectedItem(LookupComboBox.java:72)
at javax.swing.plaf.basic.BasicComboBoxUI.configureEditor(BasicComboBoxUI.java:746)
at com.sun.java.swing.plaf.windows.WindowsComboBoxUI.configureEditor(WindowsComboBoxUI.java:176)
at javax.swing.plaf.basic.BasicComboBoxUI.addEditor(BasicComboBoxUI.java:695)
at javax.swing.plaf.basic.BasicComboBoxUI$Handler.propertyChange(BasicComboBoxUI.java:1604)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:339)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:276)
at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:318)
at java.awt.Component.firePropertyChange(Component.java:7885)
at javax.swing.JComponent.firePropertyChange(JComponent.java:4420)
at javax.swing.JComboBox.setEditable(JComboBox.java:384)
at br.com.datamanager.security.view.SecurityTest.initComponents(SecurityTest.java:306)
at br.com.datamanager.security.view.SecurityTest.<init>(SecurityTest.java:33)
at br.com.datamanager.security.view.SecurityTest$6.run(SecurityTest.java:591)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Estou com uma dúvida, o método getModel retorna um ComboBoxModel certo? O model criado por mim, implementa tal interface. Então o cast feito não deveria funcionar?
Alguma sugestão de como resolver tal problema?
Desde já agradeço a ajuda.