Programa loja carro (2)

20 respostas
D

É 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:

public boolean insertClienteCarro(int idcliente, int idcarro)throws ClienteSYDAOException{
         
         try{
         System.out.println("AQUI");
         Statement s =  b.createStatement();
                  
         int affRow = s.executeUpdate("INSERT INTO Cliente_has_Carro VALUES ( "+idcliente+","
                                                                    +idcarro+" )");
                      
   
          if(affRow>0){
              return true;
         }
                         

                 
                 
           }catch (SQLException ex){
                      
         throw new ClienteSYDAOException("Problema em inserir ClienteCarro: "+ex.getMessage()); //O ERRO APONTA ESTA LINHA!


       }
         return false;

         
     }

Agradeço desde ja

20 Respostas

kaique

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.

[]'s.

D

esse aqui

compile-single:

run-single:

AQUI

26/05/2009 12:04:11 GUI.CadastroCliente B_AdicionarPrefActionPerformed

SEVERE: null

DAO.ClienteSYDAOException

at DAO.ClienteMySQL.insertClienteCarro(ClienteMySQL.java:210)

at GUI.CadastroCliente.B_AdicionarPrefActionPerformed(CadastroCliente.java:433)

at GUI.CadastroCliente.access$400(CadastroCliente.java:34)

at GUI.CadastroCliente$5.actionPerformed(CadastroCliente.java:159)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)

at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)

at java.awt.Component.processMouseEvent(Component.java:6134)

at javax.swing.JComponent.processMouseEve

at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)

at java.awt.Component.processEvent(Component.java:5899)

at java.awt.Container.processEvent(Container.java:2023)

at java.awt.Component.dispatchEventImpl(

at java.awt.Component.dispatchEventImpl(Component.java:4501)

at java.awt.Container.dispatchEventImpl(Container.java:2081)

at java.awt.Component.dispatchEvent(Component.java:4331)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3895)

at java.awt.Container.dispatchEventImpl(Container.java:2067)

at java.awt.Window.dispatchEventImpl(Window.java:2458)

at java.awt.Component.dispatchEvent(Component.java:4331)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)

at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)

at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
kaique

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

throw new ClienteSYDAOException("Problema em inserir ClienteCarro: "+ex.getMessage());

é aquela linha que eu citei ali em cima no codigo…

M

Olha eu realmente não sei, mas pode fazer isso:

throw new ClienteSYDAOException("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 :slight_smile:

M
public boolean insertClienteCarro(int idcliente, int idcarro){         
         try{
           System.out.println("AQUI");
           Statement s =  b.createStatement();
                  
           int affRow = s.executeUpdate("INSERT INTO Cliente_has_Carro VALUES ( "+idcliente+", "+idcarro+" )");
                      
           if(affRow>0)
              return true;
                 
         }catch (ClienteSYDAOException ex){
            System.out.println("Problema em inserir ClienteCarro: "+ex.getMessage()); //O ERRO APONTA ESTA LINHA!
         }
         return false;
     }

Tenta isso, nao testei o código só editei aqui no post

D

Mas ele esta dentro de um Catch ;/

D

vo testar

D

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

Como vc ta inserindo na jlist?

D
ListPref.setModel(new DefaultListModel());

eu botei esse codigo dentro do init components

M

mas ai vc ta atribuindo uma DefaultListModel vazia

D

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

Bom… ai depende, tem jeito de vc postar o código da atribuição depois da consulta pra eu dar uma olhada?

D

Esse é o codigo do botao Consultar ....

private void BbuscarActionPerformed(java.awt.event.ActionEvent evt) {                                        
    // TODO add your handling code here:
    if(tx7.getText().isEmpty()){
            JOptionPane.showMessageDialog(this, "Entre com o código do cliente para busca-lo."); 
    }else{
        try{
             Cliente  c = clienteMySQL.getCliente(Integer.parseInt(tx7.getText()));//CONVERTE A ESCRITA DO CAMPO DE TEXTO PARA INT PRA PODER BUSCAR.
    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(int i = 0; i<ListPref.getModel().getSize();i++){
        ((DefaultListModel)(ListPref.getModel())).remove(0);
    }
    DefaultListModel modelo = (DefaultListModel)ListPref.getModel();
    for(Carro carro : v){
       modelo.addElement(carro);
    
    }
        }   catch (CarroSYDAOException ex) {
                Logger.getLogger(CadastroCliente.class.getName()).log(Level.SEVERE, null, ex);
            }   catch (ClienteSYDAOException ex) {
                Logger.getLogger(CadastroCliente.class.getName()).log(Level.SEVERE, null, ex);
            }catch(NumberFormatException e){
                JOptionPane.showMessageDialog(this, "O código do carro deve ser um número.");
    }
    }

e ai tem o codigo que te mandei no outro post , são os unicos relacionados no Cadastro Cliente

M

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(Carro carro : v){  
        modelo.addElement(carro);  
       
}
conseguiu entender a idéia?
D

Axo que entendi, mas nao sei como farei isso rs…tem alguma ideia?

M

pra inserir os carros vc ta gravando em um Vector?

Se for isso é só fazer algo tipo:

DefaultListModel listModel = new DefaultListModel();
for(int i = 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

Isso não deu certo .;x

M

q coisa ^^
Na verdade nao to conseguindo visualizar o que vc ta fazendo por isso nao consigo pensar em uma solução ;x

Criado 25 de maio de 2009
Ultima resposta 27 de mai. de 2009
Respostas 20
Participantes 3