Boa tarde pessoal.
Se alguém se dispor a me ajudar, estou com um problemão :!:…
Não consigo montar esta tela… Tendei dar um Debug também não ajudou muito
Exception in thread “main” java.lang.NullPointerException
at MontaTela.(MontaTela.java:28)
at Fornecedores.(Fornecedores.java:37)
at Fornecedores.main(Fornecedores.java:90)
Segue o código das 2 classes utilizadas.
Classe Fornecedores:
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.Connection;
import java.sql.DriverManager;
import javax.swing.*;
public class Fornecedores extends JFrame{
/*Estende a classes para obter duas facilidades
*uma para apresentação gráfica e a outra um container
*para disposição de outros componentes */
/*Declaração dos objetos*/
private JTextArea saida;
private JScrollPane painelTexto;
private BotaoPainel controles;
private Connection conecta;
private MontaTela mostraTela;
private String url;
/*Métoro construtor da classe, esse método é utilizado
* para inicar as referências dos objetos, tratar as conexões e mostrar as interfaces*/
public Fornecedores(){
setTitle("Cadastro de Fornecedores");
/*Declara um referencia Container e atribui um resultado ao método
* getContentPane e retorna componenestes a interface*/
Container tela = getContentPane();
mostraTela = new MontaTela();
/*Instancia a classe JTextArea e mostra o tramanho da janela
* para o texto serão de 2 linhas e 4colunas.*/
saida = new JTextArea(2,4);
/*Atribue uma referencia ao container que estamos definindo como layout no comando BorderLayout()*/
tela.setLayout(new BorderLayout());
tela.add(new JScrollPane(mostraTela),BorderLayout.CENTER);
painelTexto = new JScrollPane(saida);
tela.add(painelTexto,BorderLayout.SOUTH);
controles = new BotaoPainel(conecta,mostraTela, saida);
tela.add(controles, BorderLayout.NORTH);
setSize(550,350);
try{
/**Class.forName("sun.jdbc.odbc.jdbcodbcdriver");
* Carrega o driver de acesso ao banco de dados escolido.
* A classe DriverManager é utilizada para administrar e selecionar o driver apropriado, quando o
* comando é solicitado na execução do programa ele escolhe dentre uma lista de drivers
* disponíveis e carregados para efetuar a conexão*/
url = "jdbc:odbc:fornecedores";
Class.forName("sun.jdbc.odbc.jdbcodbcdriver");
conecta = DriverManager.getConnection(url);
saida.append("Conexão Efetuada");
}
catch (ClassNotFoundException e){
saida.append("não foi possivel efetuar");
}
catch (SQLException d){
saida.append("Não foi possivel DB");
}
addWindowListener (new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
}} );
}
public static void main(String[] args) {
new Fornecedores().show();
}
}
E a classe MontaTela:
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MontaTela extends JPanel{
private JPanel telaPanel;
private JLabel LCodigo, LNome, LSobrenome, LCidade, LEndereco, LEstado, LCep, mensagem;
/*Foi trocado a identificador de acesso para public*/
public JTextField Sobrenome, Nome, Codigo, Endereco, Cidade, Estado, Cep;
/**
*
*/
public MontaTela(){
setLayout(null);
LCodigo = new JLabel("Código");
LCodigo.setBounds(15,10,70,20);
add(LCodigo);
Codigo = new JTextField();
Codigo.setBounds(95,10,30,20);
Codigo.setEditable(false);
add(Codigo);
LNome = new JLabel ("Nome");
LNome.setBounds(15,40,70,20);
add(LNome);
Nome = new JTextField();
Nome.setBounds(95,40,300,20);
add(Nome);
LSobrenome = new JLabel ("Sobrenome");
LSobrenome.setBounds(15,70,70,20);
add(LSobrenome);
Sobrenome = new JTextField();
Sobrenome.setBounds(90,70,250,20);
add(Sobrenome);
LEndereco = new JLabel("Endereco");
LEndereco.setBounds(15,100,70,20);
add(LEndereco);
Endereco = new JTextField();
Endereco.setBounds(95,100,400,20);
add(Endereco);
LCidade = new JLabel ("Cidade");
LCidade.setBounds(15,130,70,20);
add(LCidade );
Cidade = new JTextField();
Cidade.setBounds(95,130,200,20);
add(Cidade);
LEstado = new JLabel ("Estado");
LEstado.setBounds(15,160,70,20);
add(LEstado);
Estado = new JTextField();
Estado.setBounds(95,160,23,20);
add(Estado);
LCep = new JLabel("Cep");
LCep.setBounds(15,190,70,20);
add(LCep);
Cep = new JTextField();
Cep.setBounds(95,190,70,20);
add(Cep);
mensagem = new JLabel ("Formato de Preenchimeto do CEP:99999999");
mensagem.setBounds(200,190,300,20);
add(mensagem);
}
}