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…
