Erro NullPointerException

5 respostas
V

Pessoal alguém pode me ajudar??? ta dando um erro de null point exception e não consigo enxergar na onde ta esse erro. Vejam minhas classes abaixo:

package br.iterator.semPadrao;

/**
 *
 * @author Vagner Duarte
 */
public class Aluno {
    String nome;
    String sobrenome;
    String tel;
    String cpf;

    public Aluno(String nome, String sobrenome, String tel, String cpf) {
        this.nome = nome;
        this.sobrenome = sobrenome;
        this.tel = tel;
        this.cpf = cpf;
    }

    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getSobrenome() {
        return sobrenome;
    }

    public void setSobrenome(String sobrenome) {
        this.sobrenome = sobrenome;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }
    

}
package br.iterator.semPadrao;

import javax.swing.JOptionPane;

/**
 *
 * @author Vagner Duarte
 */
public class IteratorGui extends javax.swing.JFrame {

    /** Creates new form IteratorGui */
    public IteratorGui() {
        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() {

        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jt_nome = new javax.swing.JTextField();
        jt_sobrenome = new javax.swing.JTextField();
        jt_tel = new javax.swing.JTextField();
        jt_cpf = new javax.swing.JTextField();
        bt_gravar = new javax.swing.JButton();
        bt_cancelar = new javax.swing.JButton();
        bt_cadastro = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Cadastro de Alunos.:");
        setResizable(false);

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel1.setForeground(java.awt.Color.blue);
        jLabel1.setText("Cadastro de Alunos Utilizando Lista:");

        jLabel2.setText("Nome:");

        jLabel3.setText("Sobrenome:");

        jLabel4.setText("Telefone:");

        jLabel5.setText("Cpf:");

        jt_nome.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jt_nomeActionPerformed(evt);
            }
        });

        jt_sobrenome.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jt_sobrenomeActionPerformed(evt);
            }
        });

        try{   
            javax.swing.text.MaskFormatter tel = new javax.swing.text.MaskFormatter("(##)####-####");   
            jt_tel = new javax.swing.JFormattedTextField(tel);   
        }   
        catch (Exception e){   
        }
        jt_tel.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jt_telActionPerformed(evt);
            }
        });

        try{   
            javax.swing.text.MaskFormatter cpf = new javax.swing.text.MaskFormatter("###.###.###-##");   
            jt_cpf = new javax.swing.JFormattedTextField(cpf);   
        }   
        catch (Exception e){   
        }
        jt_cpf.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jt_cpfActionPerformed(evt);
            }
        });

        bt_gravar.setText("Gravar");
        bt_gravar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bt_gravarActionPerformed(evt);
            }
        });

        bt_cancelar.setText("Cancelar");

        bt_cadastro.setText("Mostrar Cadastro");
        bt_cadastro.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bt_cadastroActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(bt_gravar)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(bt_cancelar)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(bt_cadastro))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                        .addGap(68, 68, 68)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel3)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jt_sobrenome, javax.swing.GroupLayout.DEFAULT_SIZE, 212, Short.MAX_VALUE))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jLabel2)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(jt_nome, javax.swing.GroupLayout.DEFAULT_SIZE, 239, Short.MAX_VALUE))
                            .addComponent(jLabel1)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                                    .addComponent(jLabel5)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(jt_cpf))
                                .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
                                    .addComponent(jLabel4)
                                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                    .addComponent(jt_tel, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE))))))
                .addContainerGap(58, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(47, 47, 47)
                .addComponent(jLabel1)
                .addGap(48, 48, 48)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(jt_nome, 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.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(jt_sobrenome, 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.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(jt_tel, 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.BASELINE)
                    .addComponent(jLabel5)
                    .addComponent(jt_cpf, 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(bt_gravar)
                    .addComponent(bt_cancelar)
                    .addComponent(bt_cadastro))
                .addContainerGap(44, Short.MAX_VALUE))
        );

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

    private void jt_nomeActionPerformed(java.awt.event.ActionEvent evt) {                                        
        // TODO add your handling code here:
}                                       

    private void jt_sobrenomeActionPerformed(java.awt.event.ActionEvent evt) {                                             
        // TODO add your handling code here:
}                                            

    private void jt_telActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
}                                      

    private void jt_cpfActionPerformed(java.awt.event.ActionEvent evt) {                                       
        // TODO add your handling code here:
}                                      

    private void limpacampos(){
    jt_cpf.setText("");
    jt_nome.setText("");
    jt_sobrenome.setText("");
    jt_tel.setText("");

    }
    private void bt_gravarActionPerformed(java.awt.event.ActionEvent evt) {                                          
        String nome = jt_nome.getText();
        String sobrenome = jt_sobrenome.getText();
        String cel = jt_tel.getText();
        String cpf = jt_cpf.getText();
        CadastroAluno cadastro = new CadastroAluno();
        cadastro.addAluno(nome, sobrenome, cel, cpf);
        limpacampos();
        JOptionPane.showMessageDialog(null, "Cadastro Efetuado com sucesso!!");
        jt_nome.requestFocus();
}                                         

    private void bt_cadastroActionPerformed(java.awt.event.ActionEvent evt) {                                            
        MostraCadastro mostrar = new MostraCadastro();
        mostrar.show();
        dispose();
        mostrar.arraylistcadastro();
}                                           

    // Variables declaration - do not modify                     
    private javax.swing.JButton bt_cadastro;
    private javax.swing.JButton bt_cancelar;
    private javax.swing.JButton bt_gravar;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JTextField jt_cpf;
    private javax.swing.JTextField jt_nome;
    private javax.swing.JTextField jt_sobrenome;
    private javax.swing.JTextField jt_tel;
    // End of variables declaration                   

}
package br.iterator.semPadrao;

import java.util.ArrayList;

/**
 *
 * @author Vagner Duarte
 */
public class CadastroAluno {

    private ArrayList<Aluno> alunos;

    public void addAluno(String nome, String sobrenome, String tel, String cpf){
        alunos = new ArrayList<Aluno>();
        Aluno aluno = new Aluno(nome, sobrenome,tel,cpf);
        alunos.add(aluno);
    }
    public ArrayList<Aluno> lista_alunos(){
    return alunos;
    }
}
package br.iterator.semPadrao;

import java.util.ArrayList;
import javax.swing.JOptionPane;

/**
 *
 * @author Vagner Duarte
 */
public class MostraCadastro extends javax.swing.JFrame {
ArrayList<Aluno> alunos;
    
    public MostraCadastro() {
        initComponents();
            }

    public void arraylistcadastro(){
    CadastroAluno cadastro = new CadastroAluno();
    alunos = new ArrayList<Aluno>();
    alunos = cadastro.lista_alunos();

    if(alunos.size() == 0){
    JOptionPane.showMessageDialog(null, "A lista esta vazia");
    }

    for(int i =0; i <= alunos.size();i++){
        Aluno aluno = (Aluno) alunos.get(i);
    jta_cadastro.append(aluno.getNome());
    jta_cadastro.append(aluno.getSobrenome());
    jta_cadastro.append(aluno.getTel());
    jta_cadastro.append(aluno.getCpf());
        }

    }

   
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">                          
    private void initComponents() {

        jLabel1 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jta_cadastro = new javax.swing.JTextArea();

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

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        jLabel1.setForeground(java.awt.Color.blue);
        jLabel1.setText("Alunos Cadastrados:");

        jta_cadastro.setColumns(20);
        jta_cadastro.setRows(5);
        jScrollPane1.setViewportView(jta_cadastro);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(131, 131, 131)
                        .addComponent(jLabel1))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 346, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(34, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(33, 33, 33)
                .addComponent(jLabel1)
                .addGap(18, 18, 18)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 152, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(80, Short.MAX_VALUE))
        );

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

    /**
    * @param args the command line arguments
    */

    // Variables declaration - do not modify                     
    private javax.swing.JLabel jLabel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea jta_cadastro;
    // End of variables declaration                   

}

5 Respostas

Adelar

Olá,
posta a exception aqui. Vai ser mais fácil verificar com ela.

Att.

V

segue o erro:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at br.iterator.semPadrao.MostraCadastro.arraylistcadastro(MostraCadastro.java:33) at br.iterator.semPadrao.IteratorGui.bt_cadastroActionPerformed(IteratorGui.java:225) at br.iterator.semPadrao.IteratorGui.access$500(IteratorGui.java:20) at br.iterator.semPadrao.IteratorGui$6.actionPerformed(IteratorGui.java:113) 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:6216) at javax.swing.JComponent.processMouseEvent(JComponent.java:3265) at java.awt.Component.processEvent(Component.java:5981) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4583) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4413) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2475) at java.awt.Component.dispatchEvent(Component.java:4413) 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)

Adelar

Olá,
acho que o erro está na linha 26 do MostraCadastro. Está como:

for(int i =0; i <= alunos.size();i++){

acho que deveria ser:

for(int i =0; i < alunos.size();i++){

Att.

V

não é esse o erro não…fiz o teste

eu to desconfiado dessa linha aqui ó:

CadastroAluno cadastro = new CadastroAluno();

Será que quando eu instanciou aqui, ele não zera o objeto aluno e ai tento acessar os atributos, ai da o erro??

Adelar

Pois é, não tinha notado… são dois problemas…

o problema primeiro esta nas linhas 19 e 20 do MostraCadastro, nas quais você seta a mesma variável duas vezes.

Deve haver um método lista_alunos() na classe CadastroAluno né? O segundo problema é que este método retorna a variável alunos da classe CadastroAluno, que ainda não foi inicializada (está sendo inicializada somente no método addAluno(String nome, String sobrenome, String tel, String cpf)).

Att.

Criado 16 de junho de 2010
Ultima resposta 16 de jun. de 2010
Respostas 5
Participantes 2