Erro para converter Objeto da JcomboBox

3 respostas Resolvido
java
G

Fala galera beleza,

Estou tentando setar uma JcomboBox de Cidades, que na verdade está carregada com uma lista de objetos. Porem da um erro falando que não é possível converter pois o tipo é String. Os passos para isso são: primeiro eu clico em um item da minha tabela e busco esse item no banco dedados pelo id, carrego o objeto cidade, depois eu verifico na minha comboBox comparando o id da cidade do banco de dados com id da cidade que está na comboBox, caso id seja igual eu achei a cidade que eu quero, e seto a comboBox pelo método combo.setSelectedIndex(i); pois estou percorrendo a combo inteira, e dou um break para parar a instrução já que achei a cidade que eu quero. Mas ele me retorna uma Exception. Fiz todos exemplos que achei no guj resolvido mas no meu continua dando uma Exception. Alguma luz?

Onde acontece a Exception na segunda linha do for no momento de converter pro meu objeto CidadeBeans.

for(int i = 0; i <= CBoxCidade.getItemCount(); i++){
                        CidadeBeans cb = (CidadeBeans) CBoxCidade.getItemAt(i);
                        if(cb.getId() == LeilaoB.getCidade()){
                            CBoxCidade.setSelectedIndex(i);   
                            break;
                        }
                    }

Exception:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to Beans.CidadeBeans
    	at GUI.TelaLeilao.tbLeilaoMouseClicked(TelaLeilao.java:505)
    	at GUI.TelaLeilao.access$200(TelaLeilao.java:28)
    	at GUI.TelaLeilao$4.mouseClicked(TelaLeilao.java:269)
    	at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
    	at java.awt.Component.processMouseEvent(Component.java:6536)
    	at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
    	at java.awt.Component.processEvent(Component.java:6298)
    	at java.awt.Container.processEvent(Container.java:2236)
    	at java.awt.Component.dispatchEventImpl(Component.java:4889)
    	at java.awt.Container.dispatchEventImpl(Container.java:2294)
    	at java.awt.Component.dispatchEvent(Component.java:4711)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4534)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
    	at java.awt.Container.dispatchEventImpl(Container.java:2280)
    	at java.awt.Window.dispatchEventImpl(Window.java:2746)
    	at java.awt.Component.dispatchEvent(Component.java:4711)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
    	at java.awt.EventQueue.access$500(EventQueue.java:97)
    	at java.awt.EventQueue$3.run(EventQueue.java:709)
    	at java.awt.EventQueue$3.run(EventQueue.java:703)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
    	at java.awt.EventQueue$4.run(EventQueue.java:731)
    	at java.awt.EventQueue$4.run(EventQueue.java:729)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

3 Respostas

Lucas_Camara

Pesquise sobre DefaultComboBoxModel. Isso te ajudará a criar a combobox evitando esse erro de cast.

jacoboliveira

Isso aqui só vai funcionar se vc adicionou um item do tipo CidadeBeans, caso for string, o erro acusa que esta vindo um item do tipo string

G
Solucao aceita

Obrigado pelas respostas. O problema é que o primeiro objeto carregado na combo era uma String o segundo era um objeto.

Criado 9 de fevereiro de 2018
Ultima resposta 9 de fev. de 2018
Respostas 3
Participantes 3