Fala, pessoal. Estou criando uma agenda, e a tela que contém o código abaixo é da tela de cadastro. Quando eu peço para pegar os valores dos Text Field e incorporar ao banco, retorna a exceção de NullPointerExcept.
A tela no banco contém exatamente os mesmos nomes dos atributos da classe.
tabela do Banco
id tinyint(5) NO PRI auto_increment nome varchar(100) NO
telefone varchar(11) YES
email varchar(100) YES
rua varchar(100) YES
numero varchar(100) YES
cidade varchar(100) YES
bairro varchar(100) YES
estado varchar(100) YES
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.PreparedStatement;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import java.sql.*;
public class TelaConsulta extends JFrame implements ActionListener {
//NA VERDADE ESTA NÃO É A TELA CONSULTA. É A ADICIONAR NOVO CONTATO
ArrayList array = new ArrayList();
Contatos contato = new Contatos();
TelaAgenda telaprincipal = new TelaAgenda();
Connection conexao = null;
private JLabel lblId;
private JTextField txtId;
private JLabel lblNome;
private JTextField txtNome;
private JLabel lblTelefone;
private JTextField txtTelefone;
private JLabel lblEmail;
private JTextField txtEmail;
private JLabel lblRua;
private JTextField txtRua;
private JLabel lblNumero;
private JTextField txtNumero;
private JLabel lblBairro;
private JTextField txtBairro;
private JLabel lblCidade;
private JTextField txtCidade;
private JLabel lblEstado;
private JTextField txtEstado;
private JButton btnVoltar;
private JButton btnAdicionar;
public TelaConsulta() {
super (“CONTATOS”);
lblId = new JLabel ("ID: ");
txtId = new JTextField ("", 2);
lblNome = new JLabel (" Nome: ");
lblTelefone = new JLabel (" Telefone: ");
lblEmail = new JLabel (" Email: ");
lblRua = new JLabel (" Rua: ");
txtRua = new JTextField ("", 10);
lblNumero = new JLabel (" Número da residência :", 10);
txtNumero = new JTextField ("", 10);
lblBairro = new JLabel (" Bairro: ", 10);
txtBairro = new JTextField ("", 10);
lblCidade = new JLabel (" Cidade: ", 10);
txtCidade = new JTextField ("", 10);
lblEstado = new JLabel (" Estado : ", 10);
txtEstado = new JTextField ("", 10);
txtNome = new JTextField ("", 10);
txtTelefone = new JTextField ("", 10);
txtEmail = new JTextField ("", 10);
btnVoltar = new JButton ("Voltar");
btnAdicionar = new JButton ("Adicionar");
Container tela = getContentPane();
tela.setLayout(new GridLayout(5,2));
tela.add(lblId);
tela.add(txtId);
tela.add(lblNome);
tela.add(txtNome);
tela.add(lblTelefone);
tela.add(txtTelefone);
tela.add(lblEmail);
tela.add(txtEmail);
tela.add(lblRua);
tela.add(txtRua);
tela.add(lblNumero);
tela.add(txtNumero);
tela.add(lblBairro);
tela.add(txtBairro);
tela.add(lblCidade);
tela.add(txtCidade);
tela.add(lblEstado);
tela.add(txtEstado);
tela.add(btnAdicionar);
tela.add(btnVoltar);
btnVoltar.addActionListener(this);
btnAdicionar.addActionListener(this);
setSize(780, 320);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
} public void actionPerformed(ActionEvent e) {
if (e.getSource()== btnAdicionar) {
adicionar();
Connection conexao;
contato = new Contatos();
//PASSANDO OS ATRIBUTOS PARA A CLASSE CONTATOS
contato.setNome(txtNome.getText());
contato.setTelefone(txtTelefone.getText());
contato.setEmail(txtEmail.getText());
contato.setRua(txtRua.getText());
contato.setNumero(txtNumero.getText());
contato.setBairro(txtBairro.getText());
contato.setCidade(txtCidade.getText());
contato.setEstado(txtEstado.getText());
//LIMPANDO TODOS OS CAMPOS
txtNome.setText("");
txtTelefone.setText("");
txtEmail.setText("");
txtRua.setText("");
txtNumero.setText("");
txtBairro.setText("");
txtCidade.setText("");
txtEstado.setText("");
JOptionPane.showMessageDialog(null, "Contato " + " '"+ contato.getNome()+"'" +" Cadastrado com sucesso!");
array.add(contato);
} else if (e.getSource() == btnVoltar) {
TelaConsulta.this.dispose();
telaprincipal.setVisible(true);
System.out.println("Os contatos adicionados foram: ");
for (int n=0; n<array.size(); n++) {
System.out.println(array.get(n));
System.out.println("========================");
}
}
}
//MÉTODO PARA ADICIOANR
private void adicionar() {
String sql = "insert into contatos (id, nome, telefone, email, rua, numero, cidade, bairro, estado) values (?,?,?,?,?,?,?,?,?)"; try {
PreparedStatement pst = conexao.prepareStatement(sql);
pst.setString(1, txtId.getText());
pst.setString(2, txtNome.getText());
pst.setString(3, txtTelefone.getText());
pst.setString(4, txtEmail.getText());
pst.setString(5, txtRua.getText());
pst.setString(6, txtNumero.getText());
pst.setString(7, txtBairro.getText());
pst.setString(8, txtCidade.getText());
pst.setString(9, txtEstado.getText());
//A linha abaixo atualiza a tabela contatos com as informações digitadas no formulário.
pst.executeUpdate();
}
catch (Exception e ) {
JOptionPane.showMessageDialog(null, e);
}
}
}
public void actionPerformed(ActionEvent e) { if (== btnAdicionar) {e.getSource()
adicionar();