Ajuda com Exception in thread "main" java.lang.NullPointerException

2 respostas
J

Boa Tarde!
Sou iniciante em Java e esse é meu primeiro tópico no fórum.
Estou tentando criar uma tela para acesso a uma conta em um Banco (Trabalho de Faculdade), onde se pede o nº da conta e senha do cliente.
O trabalho indica que não é necessário implementar as operações(saque,extrato,etc…). Só preciso que a tela apareça.

Tenho o seguinte problema com o código na hora da compilação:

[color=darkred]Exception in thread “main” java.lang.NullPointerException

    at br.projecao.banco.Banco.inicializarComponentes(Banco.java:49)

at br.projecao.banco.Banco.(Banco.java:92)

at br.projecao.banco.Banco.main(Banco.java:106)

Java Result: 1

CONSTRUÍDO COM SUCESSO (tempo total: 1 segundo)[/color]

Segue abaixo o meu código.
Utilizo o NetBeans v 6.7.1

package br.projecao.banco;

import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

/**
 *
 * @author José Carlos
 */
public class Banco extends JFrame implements ActionListener{
    
    // Construtor padrão.
    public Banco(){
        super();
        inicializarComponentes();
    }
    
    // Construtor com parâmetro.
    public Banco(String titulo){
        super(titulo);
        inicializarComponentes();
    }

    // Criando os componentes da tela.
    private JLabel lbTitulo;
    private JLabel lbNumConta;
    private JLabel lbSenha;
    private JTextField numConta;
    private JPasswordField senha;
    private JButton btnAcessar;
    private JButton btnCancelar;

    // Inicializando os componentes.
    private void inicializarComponentes() {

        // C recebe o Container, ou seja, os componentes da tela...
        // getContentPane adiciona esses componentes na tela...
        Container c = getContentPane();

        lbTitulo = new JLabel("Banco do Zé");
        lbNumConta = new JLabel("Número da conta");
        lbSenha = new JLabel("Senha");
        numConta = new JTextField();
        senha = new JPasswordField();
    
        // Posicionando os componentes na tela.
        lbTitulo.setBounds(10, 10, 100, 20);
        lbNumConta.setBounds(10, 50, 100, 20);
        lbSenha.setBounds(10, 80, 100, 20);
        numConta.setBounds(110, 50, 100, 20);
        senha.setBounds(110, 80, 100, 20);
        btnAcessar.setBounds(20, 110, 80, 20);
        btnCancelar.setBounds(110, 110, 80, 20);
    
        // Aqui é definido que não se usará nenhum gerenciador de layouts.
        setLayout(null);

        /* Aqui é criado um objeto do tipo Container. O método getContentPane()
         adiciona os componentes na janela. Através do objeto "c" são adicionados
         os componentes seguintes na janela.*/
        c.add(lbTitulo);
        c.add(lbNumConta);
        c.add(lbSenha);
        c.add(numConta);
        c.add(senha);
        c.add(btnAcessar);
        c.add(btnCancelar);
        
        // Associa o ActionListener aos botões...
        btnAcessar.addActionListener(this);
        btnCancelar.addActionListener(this);

        // Posicionando a TELA.
        setBounds(10, 10, 300, 300);

        // Fazendo com que a tela fique visível.
        setVisible(true);

        // Determinando o tamanho da janela principal...
        setSize(500,500);

        // Aqui dizemos que ao fechar a janela, a aplicação também é encerrada...
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

        public void actionPerformed(ActionEvent e) {
            if(e.getSource() == btnAcessar){
                JOptionPane.showMessageDialog(this,"Entrar");
                return;
            }
            if(e.getSource() == btnCancelar){
                System.exit(0);
            }
        }

        public static void main(String args[]){
            Banco conta = new Banco("Banco do Zé");
            conta.setVisible(true);
        }
}

Agradeço pela atenção de todos…

2 Respostas

R

Assegure-se de que iniciou corretamente todos os objetos que está usando. Por exemplo, acho que você não iniciou o objeto btnAcessar.

J

Obrigado amigo!
Era esse mesmo o problema.
Inicializei o btnAcessar e o btnCancelar e a bendita tela apereceu.
Obrigado pela ajuda. :smiley:

Criado 28 de setembro de 2009
Ultima resposta 28 de set. de 2009
Respostas 2
Participantes 2