Desistindo de POO - Setar dois valores na classe em eventos distintos

3 respostas
C

Boa tarde. Amigos, gostaria de pegar o valor do objeto que criei, em outro evento. Porém da erro. Me ajudem se estou fazendo um completo absurdo, e o que poderia fazer ao inves.

Segue código:

private void jbCadOsCadastrarActionPerformed(java.awt.event.ActionEvent evt) {                                                             
            try {
                Statement stmt = con.createStatement();
                    stmt.executeUpdate("INSERT INTO cad(codigo,tec1,tec2,cred,serv,data,situacao,primeira,periodo)" +
                            " VALUES ("+jcod+","+jtec1+","+jtec2+","+jcred+","+jserv+",'"+dataJDBC+"','P',"+pdp+","+periodo+")",Statement.RETURN_GENERATED_KEYS);
                    rs = stmt.getGeneratedKeys();
                    rs.next();


                    int idcad = rs.getInt(1);
                    
                    OrdemDeServico ordemDeServico = new OrdemDeServico();
                    ordemDeServico.setIdcad(idcad);
   
            }catch (Exception e) {
                JOptionPane.showMessageDialog(null,"Erro: "+e.getMessage(), "Erro na gravação",JOptionPane.ERROR_MESSAGE);
            }
        }
        }
}

Com o código acima eu tento jogar o valor. e com o abaixo eu tento jogar um outro valor que vai complementar o valor que eu já joguei antes, para que na classe OrdemDeServico, estes dois valores que eu joguei façam uma ação.

private void jbCadOsServicoIndividualActionPerformed(java.awt.event.ActionEvent evt) {                                                         
    String servicoIndividual = (String) jcbCadOsServIndividual.getSelectedItem();

    OrdemDeServico ordemDeServico = null;

    ordemDeServico.setServicoIndividual(servicoIndividual);      
  
        try {
            ordemDeServico.inserirServicoIndividual();
        } catch (SQLException ex) {
            Logger.getLogger(principal.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(principal.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(principal.class.getName()).log(Level.SEVERE, null, ex);
        } 
    
}

Na parte ordemDeServico.setServicoIndividual(servicoIndividual), da um erro de NullPointer Exception.

Os dois codigos que eu coloquei são na mesma classe, entao no primeiro codigo é coloquei:

OrdemDeServico ordemDeServico = new OrdemDeServico();

ordemDeServico.setIdcad(idcad);

No segundo eu nao coloquei o new, porque se eu fizer isso eu perderei o valor que eu fiz com o ordemDeServico.setIdcad(idcad).

Eu quero setar dois valores na classe ordemDeServiço, em eventos distintos. Porém sem perder a primeira variavel.

3 Respostas

eberson_oliveira

Olá,

Vc pode declarar como um atributo de classe, assim vc poderá instanciá-lo qd for conveniente e ir setando os valores conforme sua necessidade.

[]s

C

Este é o código que eu coloquei no começo da minha classe principal. Mesmo assim eu tenho um erro de Null Pointer. Não funfo.

import java.util.Date;

import negocio.*;

public class principal extends javax.swing.JFrame {

    private Connection con;
    private OrdemDeServico ordemDeServico = null;

E ao inves de criar uma nova variavel ordemDeServico, soh coloquei this.ordemDeServico.

C

Pessoa, alguem tem alguma ideia:::

Estou quase desistindo de POO. :frowning:

Criado 19 de agosto de 2008
Ultima resposta 21 de ago. de 2008
Respostas 3
Participantes 2