É o seguinte,tenho um comboBox no Cadastro Cliente com os carros e seus respectivos ids listados que foram salvos no Cadastro Carro.
Ao lado desse ComboBox tem um botao "Adicionar" e ao lado desse botão um JList que é pra onde os adicionados vao aparecer...
Mas,esta dando um erro que não consigo saber o que tem de errado,gostaria que alguem me desse umas dicas se possivel.
O erro é este:
publicbooleaninsertClienteCarro(intidcliente,intidcarro)throwsClienteSYDAOException{try{System.out.println("AQUI");Statements=b.createStatement();intaffRow=s.executeUpdate("INSERT INTO Cliente_has_Carro VALUES ( "+idcliente+","+idcarro+" )");if(affRow>0){returntrue;}}catch(SQLExceptionex){thrownewClienteSYDAOException("Problema em inserir ClienteCarro: "+ex.getMessage());//O ERRO APONTA ESTA LINHA!}returnfalse;}
Cola aqui o stack trace do seu erro. Como é uma Exception que está sendo capturada, fica complicado de saber qual o tipo de problema que está acontecendo.
Cara, faz o seguinte: dá uma olhada na classe ClienteMySQL e procure pela linha 210. Posta aqui o trecho de código dessa linha pra que eu entenda melhor a situação.
[]'s.
D
Decano
throw new ClienteSYDAOException("Problema em inserir ClienteCarro: "+ex.getMessage());
é aquela linha que eu citei ali em cima no codigo…
M
markin1
Olha eu realmente não sei, mas pode fazer isso:
thrownewClienteSYDAOException("Problema em inserir ClienteCarro: "+ex.getMessage());
Dentro de um catch? O correto não seria um só dar um print com essa parte:
"Problema em inserir ClienteCarro: "+ex.getMessage()
Como eu disse anteriormente não sei ta errado ou não, é puro achismo
Tenta isso, nao testei o código só editei aqui no post
D
Decano
Mas ele esta dentro de um Catch ;/
D
Decano
vo testar
D
Decano
Olha deu certo,mas acontece o seguinte,eu adiciono o carro na JList mas não aparece na hora,só aparece quando eu Consultar o cadastro daquele cliente
novamente…tem algum jeito de aparecer na hora?
M
markin1
Como vc ta inserindo na jlist?
D
Decano
ListPref.setModel(newDefaultListModel());
eu botei esse codigo dentro do init components
M
markin1
mas ai vc ta atribuindo uma DefaultListModel vazia
D
Decano
Sim eu pensei nisso tambem, mas mesmo assim aparece os adicionados mas como eu disse, só depois de consultar o cadastrado novamente
como eu arrumo isso?
M
markin1
Bom… ai depende, tem jeito de vc postar o código da atribuição depois da consulta pra eu dar uma olhada?
D
Decano
Esse é o codigo do botao Consultar ....
privatevoidBbuscarActionPerformed(java.awt.event.ActionEventevt){//TODOaddyourhandlingcodehere:if(tx7.getText().isEmpty()){JOptionPane.showMessageDialog(this,"Entre com o código do cliente para busca-lo.");}else{try{Clientec=clienteMySQL.getCliente(Integer.parseInt(tx7.getText()));//CONVERTEAESCRITADOCAMPODETEXTOPARAINTPRAPODERBUSCAR.tx1.setText(c.getNmcliente());tx2.setText(c.getTel1cliente());tx5.setText(c.getTel2cliente());tx3.setText(c.getCelcliente());tx4.setText(c.getDesccarrocliente());tx6.setText(c.getNtcliente());Vector<Carro>v=carroMySQL.getCarroPreferencial(Integer.parseInt(tx7.getText()));for(inti=0;i<ListPref.getModel().getSize();i++){((DefaultListModel)(ListPref.getModel())).remove(0);}DefaultListModelmodelo=(DefaultListModel)ListPref.getModel();for(Carrocarro:v){modelo.addElement(carro);}}catch(CarroSYDAOExceptionex){Logger.getLogger(CadastroCliente.class.getName()).log(Level.SEVERE,null,ex);}catch(ClienteSYDAOExceptionex){Logger.getLogger(CadastroCliente.class.getName()).log(Level.SEVERE,null,ex);}catch(NumberFormatExceptione){JOptionPane.showMessageDialog(this,"Ocódigodocarrodeveserumnúmero.");}}
e ai tem o codigo que te mandei no outro post , são os unicos relacionados no Cadastro Cliente
M
markin1
Acho que agora entendi teu problema ^^
Tipo você insere o carro só que ele não aparece na hora que vc ta inserindo só depois dá consulta, é isso né?
Então.. se for isso o problema não é tao grande assim, você só precisa atualizar o JList passando o list model na hora de inserir.
+/- igual vc faz aqui
for(Carrocarro:v){modelo.addElement(carro);
}
conseguiu entender a idéia?
D
Decano
Axo que entendi, mas nao sei como farei isso rs…tem alguma ideia?
M
markin1
pra inserir os carros vc ta gravando em um Vector?
Se for isso é só fazer algo tipo:
DefaultListModellistModel=newDefaultListModel();for(inti=0; i < vetor.size(); i++{listModel.add(vetor.get(i));
}
MinhaJList.setModel(listModel);
a idéia é essa ai ^^ eu nao lembro se listModel é add ou addElement entao coloquei add mesmo ^^ to digitando aqui no forum
D
Decano
Isso não deu certo .;x
M
markin1
q coisa ^^
Na verdade nao to conseguindo visualizar o que vc ta fazendo por isso nao consigo pensar em uma solução ;x