jComboBox com diferentes infos

boas pessoal

tenho um jcombobox que está recebendo dados do banco, porém ele tem um código e descrição.

eu pretendo jogar a descrição no combo, porém como eu faço para recuperar o código certo referente e essa decrição na hora de recuperar o conteúdo do box ?

Você pode adicionar objetos de qualquer tipo a uma ComboBox, e o texto que a ComboBox exibe por padrão é o valor retornado pelo método toString() dos objetos que você tiver adicionado. Digamos que você tenha uma classe chamada Registro, com os métodos getCodigo(), getDescricao() e toString(), onde o método toString() retorna a descrição. Se você adcionar um objeto Registro a uma ComboBox via ComboBox.addItem(), a descrição será exibida corretamente. E, para obter o código do item selecionado, é só ler o item via ComboBox.getSelectedItem() e converter o valor:

então vou ter que trabalhar com um objeto ali dentro do combobox

vou tentar fazer aqui qualquer coisa do um berro haha

valeu pela ajuda

Movido para Interface Gráfica.

consegui fazer os textos e tals

só estou com probleminhas para pegar o código agora haha

estou fazendo igual o amigo falou mas não esta indo ;\

q por fala obrigado roger :slight_smile:

Envie as seções relevantes do seu código para analisarmos. Se você tiver alguma listagem de erro, não deixe de incluí-la também.

[code] int banca = ((Banca) comboBanca.getSelectedItem()).getCodigo();
String DelBanca = “Delete From con_banca where CodBanca = ?”;

   //Deleta o carreira
   try {
   PreparedStatement stm = (PreparedStatement) ConMySql.getConexao().prepareStatement(DelBanca);
   
   stm.setInt(1, banca);
 
   stm.executeUpdate();
   stm.close();
   ConMySql.getConexao().close();
   
   } catch (Exception e) {

}[/code]

ele não deu msg de erro apenas não deletou o campo

Vários comentários:

1 - Você verificou se a variável [banca] realmente está recebendo o valor que você espera?

2 - O bloco [catch] está vazio, não contém nem mesmo uma chamada [e.printStackTrace()]. Você tem certeza de que não está ocorrendo nenhuma exceção?

3 - O método Connection.prepareStatement() sempre retorna um PreparedStatement, então a conversão de tipo via “(PreparedStatement)” não é necessária;

4 - Antes de usar Connection.close(), pode ser interessante usar Connection.commit() para ter certeza de que a exclusão será confirmada no Banco de Dados.

Massa, vou dar uma olhada nesses pontos que você comentou

valeu pela atenção

Exception in thread “AWT-EventQueue-0” java.lang.ClassCastException: java.lang.String cannot be cast to simulados.Banca.Banca
at simulados.Banca.DelBanca.btCarreiraActionPerformed(DelBanca.java:242)
at simulados.Banca.DelBanca.access$300(DelBanca.java:29)
at simulados.Banca.DelBanca$5.actionPerformed(DelBanca.java:110)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6504)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6269)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4860)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Window.dispatchEventImpl(Window.java:2713)
at java.awt.Component.dispatchEvent(Component.java:4686)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:680)
at java.awt.EventQueue$4.run(EventQueue.java:678)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

essse dai é o erro que ta dando

Oi,

Você está fazendo um cast de String sendo que o seu retorno é simulados.Banca.Banca (Object)

Tchauzin!

desculpa minha noobice, mas como resolvo ?

Você parece ter adicionado objetos do tipo String à ComboBox, não objetos do tipo Banca. Assegure-se de adicionar objetos do tipo correto à ComboBox.

Editadão

que erro besta…

new Banca();

tem que tar dentro do rs.next… não imaginei isso