Cadastro no Banco Firebird dando um nullpointerexception

7 respostas
zicky23

tenho esse código no meu cadastro de respostas, faz 3 dias que to encima tentando achar o erro mas parece tudo ok…
se alguém achar o nullpointerexception me avisa a linha…

package grafica;

import java.awt.event.ActionEvent;

import java.sql.SQLException;

import javax.swing.JOptionPane;

/**
*

  • @author Wagner Vielmond
    */
    public class CadRespQuest extends javax.swing.JFrame {

    ConexaoPostgreSQL obj_conexao = new ConexaoPostgreSQL();
    
    String idQ;
    
    /** Creates new form CadRespQuest */
    
    public CadRespQuest(String idQuestao) {
    
    initComponents();
    
    setLocation(15, 60);
    
    obj_conexao.conecta();
    
    idQ = idQuestao.toString();
    
    <a href="//JOptionPane.showMessageDialog">//JOptionPane.showMessageDialog</a>(null, "Recebendo "+idQ);
    
    }
    

    /** This method is called from within the constructor to

    • initialize the form.

    • WARNING: Do NOT modify this code. The content of this method is

    • always regenerated by the Form Editor.
      
      */
      
      @SuppressWarnings(unchecked)
      
      // 
      
      private void initComponents() {
      
      RadioCorrect = new javax.swing.ButtonGroup();
      
      RadioSel = new javax.swing.ButtonGroup();
      
      Top = new javax.swing.JPanel();
      
      RDescritiva = new javax.swing.JRadioButton();
      
      RAlternativa = new javax.swing.JRadioButton();
      
      PanelResposta = new javax.swing.JPanel();
      
      LabelRespostaDescritiva = new javax.swing.JLabel();
      
      jScrollPane1 = new javax.swing.JScrollPane();
      
      AreaRespostaDescritiva = new javax.swing.JTextArea();
      
      jPanel1 = new javax.swing.JPanel();
      
      A = new javax.swing.JRadioButton();
      
      C = new javax.swing.JRadioButton();
      
      B = new javax.swing.JRadioButton();
      
      E = new javax.swing.JRadioButton();
      
      LabelRespostaAlternativas = new javax.swing.JLabel();
      
      D = new javax.swing.JRadioButton();
      
      ButtonSave = new javax.swing.JButton();
      
      ButtonCancel = new javax.swing.JButton();
      
      jPanel2 = new javax.swing.JPanel();
      
      LabelCadastroRespostas = new javax.swing.JLabel();
      
      jLabel1 = new javax.swing.JLabel();
      
      jPanel3 = new javax.swing.JPanel();
      
      ProgressBarResposta = new javax.swing.JProgressBar();
      

      setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
      setResizable(false);

      Top.setBorder(javax.swing.BorderFactory.createEtchedBorder());

      RadioSel.add(RDescritiva);
      
      RDescritiva.setText(Descritiva);
      
      RDescritiva.addActionListener(new java.awt.event.ActionListener() {
      
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      
      RDescritivaActionPerformed(evt);
      
      }
      
      });
      
      RadioSel.add(RAlternativa);
      
      RAlternativa.setText(Alternativas);
      
      RAlternativa.addActionListener(new java.awt.event.ActionListener() {
      
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      
      RAlternativaActionPerformed(evt);
      
      }
      
      });
      
      javax.swing.GroupLayout TopLayout = new javax.swing.GroupLayout(Top);
      
      Top.setLayout(TopLayout);
      
      TopLayout.setHorizontalGroup(
      
      TopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(TopLayout.createSequentialGroup()
      
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
      
      .addGroup(TopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addComponent(RDescritiva)
      
      .addComponent(RAlternativa)))
      
      );
      
      TopLayout.setVerticalGroup(
      
      TopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, TopLayout.createSequentialGroup()
      
      .addComponent(RDescritiva)
      
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      
      .addComponent(RAlternativa)
      
      .addContainerGap(284, Short.MAX_VALUE))
      
      );
      

      PanelResposta.setBorder(javax.swing.BorderFactory.createEtchedBorder());

      LabelRespostaDescritiva.setText(“Resposta Descritiva”);

      AreaRespostaDescritiva.setColumns(20);
      
      AreaRespostaDescritiva.setLineWrap(true);
      
      AreaRespostaDescritiva.setRows(5);
      
      AreaRespostaDescritiva.setWrapStyleWord(true);
      
      AreaRespostaDescritiva.setEnabled(false);
      
      jScrollPane1.setViewportView(AreaRespostaDescritiva);
      
      javax.swing.GroupLayout PanelRespostaLayout = new javax.swing.GroupLayout(PanelResposta);
      
      PanelResposta.setLayout(PanelRespostaLayout);
      
      PanelRespostaLayout.setHorizontalGroup(
      
      PanelRespostaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(PanelRespostaLayout.createSequentialGroup()
      
      .addContainerGap()
      
      .addGroup(PanelRespostaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 399, Short.MAX_VALUE)
      
      .addComponent(LabelRespostaDescritiva))
      
      .addContainerGap())
      
      );
      
      PanelRespostaLayout.setVerticalGroup(
      
      PanelRespostaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(PanelRespostaLayout.createSequentialGroup()
      
      .addComponent(LabelRespostaDescritiva)
      
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      
      .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 211, javax.swing.GroupLayout.PREFERRED_SIZE)
      
      .addContainerGap(23, Short.MAX_VALUE))
      
      );
      

      jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());

      RadioCorrect.add(A);
      
      A.setText(A);
      
      A.setEnabled(false);
      
      A.addActionListener(new java.awt.event.ActionListener() {
      
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      
      AActionPerformed(evt);
      
      }
      
      });
      
      RadioCorrect.add©;
      
      C.setText(C);
      
      C.setEnabled(false);
      
      C.addActionListener(new java.awt.event.ActionListener() {
      
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      
      CActionPerformed(evt);
      
      }
      
      });
      
      RadioCorrect.add(B);
      
      B.setText(B);
      
      B.setEnabled(false);
      
      B.addActionListener(new java.awt.event.ActionListener() {
      
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      
      BActionPerformed(evt);
      
      }
      
      });
      
      RadioCorrect.add(E);
      
      E.setText(E);
      
      E.setEnabled(false);
      
      E.addActionListener(new java.awt.event.ActionListener() {
      
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      
      EActionPerformed(evt);
      
      }
      
      });
      

      LabelRespostaAlternativas.setText(“Resposta Alternativas”);

      RadioCorrect.add(D);
      
      D.setText(D);
      
      D.setEnabled(false);
      
      D.addActionListener(new java.awt.event.ActionListener() {
      
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      
      DActionPerformed(evt);
      
      }
      
      });
      
      javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
      
      jPanel1.setLayout(jPanel1Layout);
      
      jPanel1Layout.setHorizontalGroup(
      
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(jPanel1Layout.createSequentialGroup()
      
      .addContainerGap()
      
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
      
      .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
      
      .addComponent(A)
      
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 49, Short.MAX_VALUE)
      
      .addComponent(B)
      
      .addGap(66, 66, 66)
      
      .addComponent©
      
      .addGap(69, 69, 69)
      
      .addComponent(D)
      
      .addGap(58, 58, 58)
      
      .addComponent(E))
      
      .addComponent(LabelRespostaAlternativas, javax.swing.GroupLayout.Alignment.LEADING))
      
      .addContainerGap())
      
      );
      
      jPanel1Layout.setVerticalGroup(
      
      jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(jPanel1Layout.createSequentialGroup()
      
      .addContainerGap()
      
      .addComponent(LabelRespostaAlternativas)
      
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
      
      .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
      
      .addComponent(A)
      
      .addComponent(E)
      
      .addComponent(D)
      
      .addComponent©
      
      .addComponent(B))
      
      .addContainerGap(11, Short.MAX_VALUE))
      
      );
      
      ButtonSave.setText(Salvar);
      
      ButtonSave.addActionListener(new java.awt.event.ActionListener() {
      
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      
      ButtonSaveActionPerformed(evt);
      
      }
      
      });
      
      ButtonCancel.setText(Cancelar);
      
      ButtonCancel.addActionListener(new java.awt.event.ActionListener() {
      
      public void actionPerformed(java.awt.event.ActionEvent evt) {
      
      ButtonCancelActionPerformed(evt);
      
      }
      
      });
      

      jPanel2.setBackground(new java.awt.Color(255, 255, 255));

      LabelCadastroRespostas.setFont(new java.awt.Font(“Arial Black”, 0, 24));
      LabelCadastroRespostas.setText(“Cadastro de Respostas”);

      jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/grafica/logomarcaa.jpg"))); // NOI18N

      javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
      
      jPanel2.setLayout(jPanel2Layout);
      
      jPanel2Layout.setHorizontalGroup(
      
      jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(jPanel2Layout.createSequentialGroup()
      
      .addContainerGap()
      
      .addComponent(LabelCadastroRespostas)
      
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 155, Short.MAX_VALUE)
      
      .addComponent(jLabel1)
      
      .addContainerGap())
      
      );
      
      jPanel2Layout.setVerticalGroup(
      
      jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(jPanel2Layout.createSequentialGroup()
      
      .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(jPanel2Layout.createSequentialGroup()
      
      .addContainerGap()
      
      .addComponent(LabelCadastroRespostas))
      
      .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 57, Short.MAX_VALUE))
      
      .addContainerGap())
      
      );
      

      jPanel3.setBackground(new java.awt.Color(255, 255, 255));

      javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
      
      jPanel3.setLayout(jPanel3Layout);
      
      jPanel3Layout.setHorizontalGroup(
      
      jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
      
      .addContainerGap(387, Short.MAX_VALUE)
      
      .addComponent(ProgressBarResposta, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      
      .addContainerGap())
      
      );
      
      jPanel3Layout.setVerticalGroup(
      
      jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(jPanel3Layout.createSequentialGroup()
      
      .addContainerGap()
      
      .addComponent(ProgressBarResposta, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      
      .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
      
      );
      
      javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
      
      getContentPane().setLayout(layout);
      
      layout.setHorizontalGroup(
      
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
      
      .addGroup(layout.createSequentialGroup()
      
      .addContainerGap()
      
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(layout.createSequentialGroup()
      
      .addComponent(Top, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      
      .addGap(7, 7, 7)
      
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
      
      .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
      
      .addComponent(PanelResposta, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
      
      .addGroup(layout.createSequentialGroup()
      
      .addComponent(ButtonSave)
      
      .addGap(385, 385, 385)
      
      .addComponent(ButtonCancel)))
      
      .addContainerGap())
      
      .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
      
      );
      
      layout.setVerticalGroup(
      
      layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addGroup(layout.createSequentialGroup()
      
      .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
      
      .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
      
      .addComponent(PanelResposta, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
      
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      
      .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
      
      .addComponent(Top, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
      
      .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
      
      .addComponent(ButtonCancel)
      
      .addComponent(ButtonSave))
      
      .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
      
      .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
      
      );
      

      pack();
      }//

    private void AActionPerformed(java.awt.event.ActionEvent evt) {
    
    // TODO add your handling code here:
    
    A.setActionCommand(A);
    
    }
    
    private void RDescritivaActionPerformed(java.awt.event.ActionEvent evt) {
    
    // TODO add your handling code here:
    
    SelecionaResp();
    
    }
    
    private void RAlternativaActionPerformed(java.awt.event.ActionEvent evt) {
    
    // TODO add your handling code here:
    
    SelecionaResp();
    
    }
    
    private void ButtonCancelActionPerformed(java.awt.event.ActionEvent evt) {
    
    // TODO add your handling code here:
    
    dispose();
    
    }
    
    private void ButtonSaveActionPerformed(java.awt.event.ActionEvent evt) {
    
    // TODO add your handling code here:
    
    CadResposta(evt);
    
    }
    
    private void BActionPerformed(java.awt.event.ActionEvent evt) {
    
    // TODO add your handling code here:
    
    B.setActionCommand(B);
    
    }
    
    private void CActionPerformed(java.awt.event.ActionEvent evt) {
    
    // TODO add your handling code here:
    
    C.setActionCommand(C);
    
    }
    
    private void DActionPerformed(java.awt.event.ActionEvent evt) {
    
    // TODO add your handling code here:
    
    D.setActionCommand(D);
    
    }
    
    private void EActionPerformed(java.awt.event.ActionEvent evt) {
    
    // TODO add your handling code here:
    
    E.setActionCommand(E);
    
    }
    

    /**

    • @param args the command line arguments
    public static void main(String args[]) {
    
    java.awt.EventQueue.invokeLater(new Runnable() {
    
    public void run() {
    
    new CadRespQuest().setVisible(true);
    
    }
    
    });
    
    }*/
    
    // Variables declaration - do not modify
    
    private javax.swing.JRadioButton A;
    
    private javax.swing.JTextArea AreaRespostaDescritiva;
    
    private javax.swing.JRadioButton B;
    
    private javax.swing.JButton ButtonCancel;
    
    private javax.swing.JButton ButtonSave;
    
    private javax.swing.JRadioButton C;
    
    private javax.swing.JRadioButton D;
    
    private javax.swing.JRadioButton E;
    
    private javax.swing.JLabel LabelCadastroRespostas;
    
    private javax.swing.JLabel LabelRespostaAlternativas;
    
    private javax.swing.JLabel LabelRespostaDescritiva;
    
    private javax.swing.JPanel PanelResposta;
    
    private javax.swing.JProgressBar ProgressBarResposta;
    
    private javax.swing.JRadioButton RAlternativa;
    
    private javax.swing.JRadioButton RDescritiva;
    
    private javax.swing.ButtonGroup RadioCorrect;
    
    private javax.swing.ButtonGroup RadioSel;
    
    private javax.swing.JPanel Top;
    
    private javax.swing.JLabel jLabel1;
    
    private javax.swing.JPanel jPanel1;
    
    private javax.swing.JPanel jPanel2;
    
    private javax.swing.JPanel jPanel3;
    
    private javax.swing.JScrollPane jScrollPane1;
    
    // End of variables declaration
    
    //cadastra usando o progressbar para informar o tempo
    
    public void CadResposta(ActionEvent e)
    
    {
    
    ProgressBarResposta.setIndeterminate(true);
    
    Thread tThread = new Thread(new Runnable() {
    
    public void run() {
    
    // operacao demorada
    
    if(RDescritiva.isSelected() == true)
    
    {
    
    CadastraRDesc();
    
    }
    
    if(RAlternativa.isSelected() == true)
    
    {
    
    CadastraRAlter();
    
    }
    
    ProgressBarResposta.setIndeterminate(false);
    
    }
    
    });
    
    tThread.start();
    
    }
    
    public void SelecionaResp()
    
    {
    
    if(RDescritiva.isSelected() == true)
    
    {
    
    AreaRespostaDescritiva.setEnabled(true);
    
    A.setEnabled(false);
    
    B.setEnabled(false);
    
    C.setEnabled(false);
    
    D.setEnabled(false);
    
    E.setEnabled(false);
    
    RadioCorrect.clearSelection();
    
    }
    
    if(RAlternativa.isSelected() == true)
    
    {
    
    AreaRespostaDescritiva.setEnabled(false);
    
    A.setEnabled(true);
    
    B.setEnabled(true);
    
    C.setEnabled(true);
    
    D.setEnabled(true);
    
    E.setEnabled(true);
    
    AreaRespostaDescritiva.setText("");
    
    }
    
    }
    
    //cadastra a resposta alter
    
    public void CadastraRAlter()
    
    {
    
    try
    
    {
    
    String CadRAlter = INSERT INTO ALTERNATIVAS(ID_QUESTAO,CORRECTALTER) VALUES (
    
    +idQ+",’"
    
    +RadioCorrect.getSelection().getActionCommand()+"’)";
    
    obj_conexao.statement.executeUpdate(CadRAlter);
    
    JOptionPane.showMessageDialog(null, "Resposta Gravada com sucesso. Letra: “+RadioCorrect.getSelection().getActionCommand()+” da questão: "+idQ);
    
    }
    
    catch(SQLException erro)
    
    {
    
    JOptionPane.showMessageDialog(null, "erro ao tentar gravar "+erro);
    
    }
    
    }
    
    //cadastra a resposta alter
    
    public void CadastraRDesc()
    
    {
    
    try
    
    {
    
    String CadRD = “INSERT INTO DESCRITIVA(ID_QUESTAO,RESPOSTA) VALUES (”
    
    +idQ+",’"
    
    +AreaRespostaDescritiva.getText()+"’)";
    
    obj_conexao.statement.executeUpdate(CadRD);
    
    <a href="//JOptionPane.showMessageDialog">//JOptionPane.showMessageDialog</a>(null, “Resposta da questão: “+idQ+” gravada com sucesso”);
    
    }
    
    catch(SQLException erro)
    
    {
    
    JOptionPane.showMessageDialog(null, "erro ao tentar gravar "+erro);
    
    }
    
    }
    
    }
    

o nullpointerexception aponta para essa linha abaixo, mas está normal como todas as outras, que tenho no sistema e que estão cadastrando normalmente…

obj_conexao.statement.executeUpdate(CadRAlter);

aguardo um help…

obrigado

7 Respostas

fabiomedeirosf

Cara,

para melhor compreensao, poste trechos do seu código mais especifico com seu problema… tipo, o método que salva os dados.

e o stack de erro.

ao postar um codigo, envolva-o por pelo elementro code, pra melhor visualização.

[]s

zicky23

Obrigado amigo,

public class CadRespQuest extends javax.swing.JFrame {

    ConexaoPostgreSQL obj_conexao = new ConexaoPostgreSQL();
    private String idQ = "";
    /** Creates new form CadRespQuest */
    public CadRespQuest(String idQuestao) {
        initComponents();
        setLocation(15, 60);
        obj_conexao.conecta();
        idQ = idQuestao;
        //JOptionPane.showMessageDialog(null, "Recebendo "+idQ);
    }

esse cod acima, conecta o bd cria uma string, e pega um valor passado por parametro, esse valor vou usar para cadastrar mais a frente.. ja mostro...

public void CadastraRAlter()
    {
        try
        {
            String CadRAlter = "INSERT INTO ALTERNATIVAS(ID_QUESTAO,CORRECTALTER) VALUES ("
                              +idQ+",'"
                              +RadioCorrect.getSelection().getActionCommand()+"')";
            obj_conexao.statement.executeUpdate(CadRAlter);
            JOptionPane.showMessageDialog(null, "Resposta Gravada com sucesso. Letra: "+RadioCorrect.getSelection().getActionCommand()+" da questão: "+idQ);
        }
        catch(Exception erro)
        {
            JOptionPane.showMessageDialog(null, "erro ao tentar gravar "+erro);
        }
    }

esse cod acima, cadastro uma resposta de uma questao, pego a id da questao ja cadastrada atraves da variavel idQ que pego qdo clico em um botao no jframe cadquestoes, que abre esse form e passa o valor, a alternativa pego com o comando getActionCommand().

ah, como da pra ver coloquei um JOptionPane para mostra os valores a serem cadastrados, e estao pegando certinho..

o erro que APARECE:

Exception in thread "Thread-3" java.lang.NullPointerException
        at grafica.CadRespQuest.CadastraRAlter(CadRespQuest.java:450)
        at grafica.CadRespQuest$10.run(CadRespQuest.java:411)
        at java.lang.Thread.run(Thread.java:619)
a linha 450 é a
obj_conexao.statement.executeUpdate(CadRAlter);

desde já agradeço fabiomedeirosf...

[]s

fabiomedeirosf

é seguinte,

um dos parametros que vc esta passando, para formar a sintaxe se insert sql, está nullo, ou sua conexão está nula.

Dica: use PreparedStatement ao inves de statement somente, o primeiro além de ser mais fácil para formar os parametros que comporão sua sintaxe, é mais seguro, pois, previne contra SQLinjection:
PreparedStatement prest = conexao.getConexao().prepareStatement(<>); ; //assim vc pega a conexao para o preparedStatement.

Para mais detalhes, vc achará exemplos de ‘penca’ no guj.

Quanto ao seu erro, verifique a nullidade dos elementos antes da sintaxe.

Att.

zicky23

bahh, nada ainda, nao consigo achar o tal null

ja dei um JOPTIONPANE na conexao, ta passando TRUE

ja fiz a mesma coisa com a STRING IDQUESTAO, e ta passando o valor certinho,

ja criei outro jframe e fiz igual a todos os outros que estão funcionando, mas ta dando o mesmo erro…

será um problema do NETBEANS?

obrigado desde já

zicky23

gente achei o tal erro, olha só se tem alguma coisa a ver…

o sistema só ta cadastrando qdo eu seleciono o valor em uma tabela que esteja no mesmo jform, se ela estiver em outro form, ou se eu passar esse valor de alguma outra maneira que nao seja clicando em uma linha da tabela, ela nao funciona, nem seu eu botar o valor estatico la. que coisa estranha…

alguém tem alguma ideia desse problema? nao estou conseguindo entender isso…

obrigado

wagner

zicky23

olá,

cheguei a uma conclusão…

só cadastrou depois que eu coloquei um jtable para mostrar os dados cadastrados no jframe…

nao consigo entender o porquê disso, se alguém souber me explica…

abraços

zicky23

Bom dia, tenho outro problema

desse mesmo tópico,

olha só, só cadastra sem no FORM tiver um JTABLE, pq isso?

se não tiver, ele retorna um NULL

abraço

Criado 10 de janeiro de 2011
Ultima resposta 25 de jan. de 2011
Respostas 7
Participantes 2