Erro de nullpointExcepion

11 respostas
V

Pessoal me ajudem por favor, e estou a desenvolver um sistema aqui que esta dando a excessão de nullpointException, alguém sabe o que isso quer dizer??

11 Respostas

davidtiagoconceicao

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/NullPointerException.html

L

Você está tentando recuperar algum objeto que está com valor nulo.

maior_abandonado

é isso mesmo que o nosso amigo disse

provavelmente vc não instanciou o seu objeto, tipo, normalmente isso é feito dando um new no objeto… as vezes algum metodo vai retornar essa instancia, vc teria q atribuir a chamada desse método para o objeto…

se vc posta seu código provavelmente alguém vai te dar uma resposta mais direta e facil de intender…

V

bom pelo que entendi, essa excessão é lançada quando fazemos referência a objetos nulo, mas não to conseguindo verno meu codigo onde faço essa referencia, vou postar aqui se alguém puder me ajude por favor.

davidtiagoconceicao

Veja a Stack Trace (mensagem exibida no console). Ela provavelmente lista o ponto em que o erro ocorreu.

EDIT: se mesmo assim não conseguir encontrar, poste o código e a stack trace.

V

esta ai o meu codigo pessoal, não esta toda a classe, mas o restante é apenas o codigo gerado pelo netbenas:

public class Buscar extends javax.swing.JFrame {

TelaPrincipal p;

Conexao conec;

AdicionarContatoBean contato;
/** Creates new form Buscar */
public Buscar() {
    initComponents();
}

/** 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")
// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    tf_pesquisar = new javax.swing.JTextField();
    bt_pesquisar = new javax.swing.JButton();
    jScrollPane1 = new javax.swing.JScrollPane();
    tb_dados = new javax.swing.JTable();
    jLabel1 = new javax.swing.JLabel();
    tf_nome = new javax.swing.JTextField();
    jLabel2 = new javax.swing.JLabel();
    tf_empresa = new javax.swing.JTextField();
    jLabel3 = new javax.swing.JLabel();
    tf_dd1 = new javax.swing.JTextField();
    tf_telefone1 = new javax.swing.JTextField();
    jLabel4 = new javax.swing.JLabel();
    tf_dd2 = new javax.swing.JTextField();
    tf_telefone2 = new javax.swing.JTextField();
    jLabel5 = new javax.swing.JLabel();
    tf_data = new javax.swing.JTextField();
    bt_excluir = new javax.swing.JButton();
    bt_fechar = new javax.swing.JButton();
    jLabel6 = new javax.swing.JLabel();
    jComboBox1 = new javax.swing.JComboBox();
    bt_alterar = new javax.swing.JButton();

    setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
    setTitle("Clientes Cadastrados!");
    setResizable(false);

    bt_pesquisar.setText("Pesquisar");
    bt_pesquisar.setFocusable(false);
    bt_pesquisar.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            bt_pesquisarActionPerformed(evt);
        }
    });

    tb_dados.setModel(dadosBusca);
    jScrollPane1.setViewportView(tb_dados);

    jLabel1.setText("Nome:");

    jLabel2.setText("Empresa:");

    jLabel3.setText("Fone 1:");

    jLabel4.setText("Fone 2:");

    jLabel5.setText("Data de Cadastro:");

    bt_excluir.setText("Excluir");
    bt_excluir.setEnabled(false);

    bt_fechar.setText("Fechar");
    bt_fechar.addActionListener(new java.awt.event.ActionListener() {
        public void actionPerformed(java.awt.event.ActionEvent evt) {
            bt_fecharActionPerformed(evt);
        }
    });

    jLabel6.setText("Buscar Por:");

    jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Nome", "Empresa", "Codigo" }));

    bt_alterar.setText("Alterar");
    bt_alterar.setEnabled(false);

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(layout.createSequentialGroup()
            .addContainerGap()
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                .addGroup(layout.createSequentialGroup()
                    .addComponent(bt_alterar)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                    .addComponent(bt_excluir)
                    .addGap(18, 18, 18)
                    .addComponent(bt_fechar))
                .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(tf_nome, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 372, Short.MAX_VALUE)
                    .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(tf_empresa, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 372, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                            .addComponent(tf_dd1, javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.LEADING))
                        .addGap(18, 18, 18)
                        .addComponent(tf_telefone1, javax.swing.GroupLayout.PREFERRED_SIZE, 106, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 56, Short.MAX_VALUE)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(tf_dd2, 0, 0, Short.MAX_VALUE)
                            .addComponent(jLabel4))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(tf_telefone2, javax.swing.GroupLayout.PREFERRED_SIZE, 109, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                        .addComponent(jLabel6)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                        .addComponent(jLabel5)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(tf_data, javax.swing.GroupLayout.PREFERRED_SIZE, 96, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(tf_pesquisar, javax.swing.GroupLayout.DEFAULT_SIZE, 275, Short.MAX_VALUE)
                        .addGap(18, 18, 18)
                        .addComponent(bt_pesquisar))
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 372, Short.MAX_VALUE)))
            .addContainerGap(43, Short.MAX_VALUE))
    );

    layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {tf_telefone1, tf_telefone2});

    layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {bt_alterar, bt_excluir, bt_fechar});

    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
            .addGap(24, 24, 24)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(jLabel6)
                .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(tf_pesquisar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addComponent(bt_pesquisar))
            .addGap(18, 18, 18)
            .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addComponent(jLabel1)
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
            .addComponent(tf_nome, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
            .addComponent(jLabel2)
            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
            .addComponent(tf_empresa, 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)
                .addGroup(layout.createSequentialGroup()
                    .addComponent(jLabel3)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(tf_dd1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(tf_telefone1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGap(18, 18, 18)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel5)
                        .addComponent(tf_data, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGroup(layout.createSequentialGroup()
                    .addComponent(jLabel4)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(tf_dd2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(tf_telefone2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
            .addGap(28, 28, 28)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                .addComponent(bt_excluir)
                .addComponent(bt_fechar)
                .addComponent(bt_alterar))
            .addGap(36, 36, 36))
    );

    layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {tf_telefone1, tf_telefone2});

    layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {bt_alterar, bt_excluir, bt_fechar});

    java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
    setBounds((screenSize.width-433)/2, (screenSize.height-503)/2, 433, 503);
}// </editor-fold>                        

DefaultTableModel dadosBusca = new DefaultTableModel(null, new String []{"Código", "Nome", "Empresa"});

public void AlterabtAlterar(){
bt_alterar.enable(true);
}

public void AlterabtExcluir(){
bt_excluir.enable(true);

}
private void bt_fecharActionPerformed(java.awt.event.ActionEvent evt) {                                          
    p = new TelaPrincipal();
    p.show();
    dispose();
}                                         
@SuppressWarnings("empty-statement")

private void mostrarContato(List<AdicionarContatoBean> cont){
    if (cont == null){
    JOptionPane.showMessageDialog(null, "Nenhum registro encontrado");
    }
    else {
    while (dadosBusca.getRowCount()>0){
    dadosBusca.removeRow(0);
   }
    String campos[] = new String[] {null,null,null};
    for (int i =0; i<cont.size(); i++){
            dadosBusca.addRow(campos);
            dadosBusca.setValueAt(cont.get(i).getCodigo(), i, 0);
            dadosBusca.setValueAt(cont.get(i).getNome(),i, 1);
            dadosBusca.setValueAt(cont.get(i).getEmpresa(),i, 2);
        }
    }
}
private void ListarContato(){
    AdicionarContatoControl contatos = new AdicionarContatoControl();
    List<AdicionarContatoBean> cont = contatos.listarContato(tf_pesquisar.getText().trim());
    mostrarContato(cont);
}
private void bt_pesquisarActionPerformed(java.awt.event.ActionEvent evt) {                                             
    ListarContato();

}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new Buscar().setVisible(true);
        }
    });
}
davidtiagoconceicao

E a mensagem de erro?

EDIT: use as tags para formatar o código.

V

aqui esta copiei toda a mensagem de erro:

run:

Exception in thread AWT-EventQueue-0 java.lang.NullPointerException

at Internos.AdicionarContatoControl.listarContato(AdicionarContatoControl.java:39)

at Tela.Buscar.ListarContato(Buscar.java:250)

at Tela.Buscar.bt_pesquisarActionPerformed(Buscar.java:254)

at Tela.Buscar.access$000(Buscar.java:26)

at Tela.Buscar$1.actionPerformed(Buscar.java:75)

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.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(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)

CONSTRUÍDO COM SUCESSO (tempo total: 31 segundos)
fiaux

Aqui ó: Internos.AdicionarContatoControl.listarContato(AdicionarContatoControl.java:39)

V

cara mil desculpas, mas não conseguir perceber, será que dava pra vc me detalhar só mais um pouco o erro, por favor?

fiaux

O pessoal já explicou o que é o erro, e também já identificamos em seu stack trace onde é o erro. Agora você olha nessa linha do seu código. Lá você deve checar se a variável está nula antes de acessar, por exemplo, um método.

nomeDaVariavel.nomeDoMetodo();

Cheque o valor de nomeDaVariavel e tome a ação mais adequada.

if (nomeDaVariavel == null) { //faz alguma coisa }

Criado 12 de janeiro de 2009
Ultima resposta 12 de jan. de 2009
Respostas 11
Participantes 5