eu tenho o código, mas nao estou conseguindo definir a maneira de mostrar estes 2 itens no comboBox. Como eu faço isso?
publicvoidmostrarIdContrato(){try{NotaFiscalDaodao=newNotaFiscalDao();List<CadContrato>listaContratos=dao.ListaIdContrato();for(CadContratocc:listaContratos)cbIDContrato.addItem(cc.getId_contrato());// +" --- "+ cc.getContratada());//Até aqui eu faço aparecer o id_contrato, e enviar ele pro banco,//mas se juntar o Contratada, ai envia as duas Strings.StringitemComboBox=cbIDContrato.getItemAt(0).toString();String[]itemsComboBox=itemComboBox.split("---");StringidContrato=itemsComboBox[0];Stringcontratada=itemsComboBox[1];}catch(SQLExceptionex){JOptionPane.showMessageDialog(this,ex,"\n Erro",JOptionPane.ERROR_MESSAGE,null);}}
Nunca use uma String pura para preencher itens no banco de dados.
Em vez disso, popule o “model” do JComboBox com objetos de uma determinada classe, e então sobreescreva o método toString() dessa classe para mostrar o que você quer.
Para popular seu banco, usando o dado da JComboBox, faça um cast do retorno de getSelectedItem para a sua classe, e então pegue os campos desejados da sua classe.
Eu costumo criar uma classe bem boboca, que fica no mesmo arquivo que a classe onde defino as combos, só para não ficar criando um monte de classes públicas no programa.
rafa120
Então, na verdade eu nem sei como implementar como vc disse.
se esta forma é melhor, com certeza vou verificar depois
mas é que o caso agora faltam poucos dias pra apresentar o tcc e falta isso
E
entanglement
Vou dar um exemplo bem boboca daqui a pouco. Por favor, entenda o que ele quer fazer, para você poder fazer você mesmo.
E
entanglement
packageguj;importjava.awt.BorderLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.DefaultComboBoxModel;importjavax.swing.JComboBox;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.SwingUtilities;publicclassExemploJComboBoxextendsJFrame{/** Esta é uma classe bem simples, que você usa só para preencher o combo. */staticclassFeriado{publicFeriado(intdia,Stringmes,StringnomeFeriado){this.dia=dia;this.mes=mes;this.nomeFeriado=nomeFeriado;}publicintgetDia(){returndia;}publicStringgetMes(){returnmes;}publicStringgetNomeFeriado(){returnnomeFeriado;}publicvoidsetDia(intdia){this.dia=dia;}publicvoidsetMes(Stringmes){this.mes=mes;}publicvoidsetNomeFeriado(StringnomeFeriado){this.nomeFeriado=nomeFeriado;}/** Este método é o que você usa para mostrar um feriado no combo */@OverridepublicStringtoString(){returnnomeFeriado;}privateStringnomeFeriado;privateintdia;privateStringmes;}publicExemploJComboBox(){super();initialize();}/** * Este é o método ao qual você deve prestar atenção. Entenda-o direitinho! */privateJComboBoxgetCboFeriados(){if(cboFeriados==null){cboFeriados=newJComboBox();DefaultComboBoxModeldcbm=(DefaultComboBoxModel)cboFeriados.getModel();dcbm.addElement(newFeriado(7,"setembro","Independência"));dcbm.addElement(newFeriado(15,"outubro","Proclamação da República"));dcbm.addElement(newFeriado(25,"dezembro","Natal"));cboFeriados.addActionListener(newActionListener(){@OverridepublicvoidactionPerformed(ActionEvente){FeriadoferiadoSelecionado=(Feriado)cboFeriados.getSelectedItem();if(feriadoSelecionado==null)return;lblFeriadoEscolhido.setText("O feriado escolhido é "+feriadoSelecionado.getNomeFeriado()+", que ocorre em "+feriadoSelecionado.getDia()+" de "+feriadoSelecionado.getMes());}});}returncboFeriados;}privateJPanelgetJContentPane(){if(jContentPane==null){lblFeriadoEscolhido=newJLabel();lblFeriadoEscolhido.setText("");jContentPane=newJPanel();jContentPane.setLayout(newBorderLayout());jContentPane.add(getCboFeriados(),BorderLayout.NORTH);jContentPane.add(lblFeriadoEscolhido,BorderLayout.SOUTH);}returnjContentPane;}privatevoidinitialize(){this.setSize(500,100);this.setContentPane(getJContentPane());this.setTitle("Exemplo JComboBox");}publicstaticvoidmain(String[]args){SwingUtilities.invokeLater(newRunnable(){publicvoidrun(){ExemploJComboBoxthisClass=newExemploJComboBox();thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);thisClass.setVisible(true);}});}privatestaticfinallongserialVersionUID=1L;privateJPaneljContentPane=null;privateJComboBoxcboFeriados=null;privateJLabellblFeriadoEscolhido=null;}