Java Jtextfield conexãoBB - Quem achar o erro ganhar um doce

Olá pessoal… meu codigo está dando erro e não sei ql é… consegue me ajudar?
O erro que aparece em vermelho no eclipse é esse:
java.lang.reflect.InvocationTargetExceptionIWAV0052E Invocation Target Exception creating CadastroFornecedor

[color=red] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.eclipse.ve.internal.java.vce.launcher.remotevm.JFCLauncher$1.run(JFCLauncher.java:59)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.NullPointerException
at CadastroFornecedor.getSalvCadFornecedor(CadastroFornecedor.java:296)
at CadastroFornecedor.getJContentPane(CadastroFornecedor.java:220)
at CadastroFornecedor.initialize(CadastroFornecedor.java:92)
at CadastroFornecedor.(CadastroFornecedor.java:88)
… 13 more[/color]

codigo é o seguinte:

[code]
public class ProgramaEnigMais extends JFrame {
private JButton DirecionarCadastro = null;

private JButton getDirecionarCadastro() {
	if (DirecionarCadastro == null) {
		DirecionarCadastro = new JButton();
		DirecionarCadastro.setBounds(new Rectangle(100, 8, 90, 30));
		DirecionarCadastro.setText("Cadastro");
	}
	return DirecionarCadastro;

public static void main(String args[]) {
	ProgramaEnigMais app = new ProgramaEnigMais();
	app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		try{
			Connection conexao = FabricaConexao.getConexao();
			if(conexao != null){
				System.out.println("Conexão estabelecida!");
			}
			else{
				System.out.println("Erro ao conectar!");
			}
		conexao.close();
	} catch (SQLException e) {
			e.printStackTrace();
		}	
	}

public ProgramaEnigMais() {
	super();
	initialize();
	setLayout(null);
	DirecionarCadastro.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
			Caixa.jPanel.setVisible(false);
			Estoque.jPanel.setVisible(false);
			Cadastro.getJPanel();
			Cadastro.jPanel.setVisible(true);
			Cadastro.jPanel.setBounds(new Rectangle(0, 82, 1233, 629));
		}
	});
	setSize(1250, 750);
	setVisible(true);
}

}

////// AKI FINALIZA A CLASSE ProgramaEnigMais (OBS. TEM OUTRAS COISAS NO CODGO QUE NÃO ESTÁ RELACIONADO)/////

public class Cadastro extends JPanel {

private static final long serialVersionUID = 1L;
static JPanel jPanel = null;
private static JLabel TituloCadastro = null;
private static JButton DirecionarFornecedor = null;

public Cadastro() {
	super();
	initialize();
	DirecionarFornecedor.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
			CadastroFornecedor cadasfor = new CadastroFornecedor();
			cadasfor.setVisible(true); 
		}
	});
}
private void initialize() {
	this.setLayout(null);
	this.setBounds(new Rectangle(0, 0, 1233, 750));
	this.add(getJPanel(), null);
}

static public JPanel getJPanel() {
	if (jPanel == null) {
		TituloCadastro = new JLabel();
		TituloCadastro.setText("Cadastro");
		TituloCadastro.setFont(new Font("Dialog", Font.BOLD, 24));
		TituloCadastro.setBounds(new Rectangle(2, 1, 105, 40));

		jPanel = new JPanel();
		jPanel.setLayout(null);
		jPanel.setBounds(new Rectangle(0, 82, 1233, 667));
		jPanel.setBackground(SystemColor.activeCaption);
		jPanel.setVisible(true);
		jPanel.add(TituloCadastro, null);
		jPanel.add(getDirecionarFornecedor(), null);
	}
	return jPanel;

}
private static JButton getDirecionarFornecedor() {
if (DirecionarFornecedor == null) {
DirecionarFornecedor = new JButton();
DirecionarFornecedor.setBounds(new Rectangle(14, 68, 128, 34));
DirecionarFornecedor.setText(“Fornecedor”);
}
return DirecionarFornecedor;
}
}

////// AKI FINALIZA A CLASSE Cadastro/////

public class CadastroFornecedor extends JFrame {
private static JLabel NomeFornecedor = null;
private static JTextField NomeFornecedorCampo = null;
private static JButton SalvCadFornecedor = null;

public CadastroFornecedor() {
	super();
	initialize();
}

private void initialize() {
	this.setContentPane(getJContentPane());
	this.setTitle("Cadastro de Fornecedores");
	this.setIconImage(Toolkit.getDefaultToolkit().getImage(
			"D:/Programa EnigMais/EstudandoJava/Imagens/Simbolo sem fundo2.png"));
	this.setBounds(new Rectangle(0, 0, 600, 580));
}
static JPanel getJContentPane() {
	if (jContentPane == null) {
		NomeFornecedor = new JLabel();
		NomeFornecedor.setBounds(new Rectangle(105, 71, 109, 18));
		NomeFornecedor.setFont(new Font("Dialog", Font.BOLD, 11));
		NomeFornecedor.setText("Nome/Razão Social:");
		jContentPane.add(NomeFornecedor, null);
		jContentPane.add(getNomeFornecedorCampo(), null);
		jContentPane.add(getFecharSemSalvCadFornecedor(), null);
	}
	return jContentPane;
}

private static JButton getSalvCadFornecedor() {
	if (SalvCadFornecedor == null) {
		SalvCadFornecedor = new JButton();
		SalvCadFornecedor.setBounds(new Rectangle(289, 430, 141, 24));
		SalvCadFornecedor.setText("Salvar/Fechar");
		try{
			CadastroFornecedor fornecedor = new CadastroFornecedor();
			CadastroFornecedorDAO dao = new CadastroFornecedorDAO();
			
			fornecedor.setName(NomeFornecedorCampo.getText());//Acho que o erro está aki <<<
			
			dao.adiciona(fornecedor);
			
			System.out.println("Gravado");
		} catch (SQLException e){
			e.printStackTrace();
		}
	}
	return SalvCadFornecedor;
}
private static JTextField getNomeFornecedorCampo() {
	if (NomeFornecedorCampo == null) {
		NomeFornecedorCampo = new JTextField();
		NomeFornecedorCampo.setBounds(new Rectangle(215, 71, 198, 18));
	}
	return NomeFornecedorCampo;
}

}
////// AKI FINALIZA A CLASSE CadastroFornecedor (OBS. TEM OUTRAS COISAS NO CODGO QUE NÃO ESTÁ RELACIONADO)/////

public class CadastroFornecedorDAO {
private Connection conexao;

public CadastroFornecedorDAO() throws SQLException {
	this.conexao = FabricaConexao.getConexao();
}
public void adiciona(CadastroFornecedor fornecedor) throws SQLException {
	PreparedStatement stmt = (PreparedStatement) this.conexao
			.prepareStatement("insert into fornecedor (nomefornecedor) values (?)");
	stmt.setString(1, fornecedor.getName()); // nome
	stmt.execute();
	stmt.close();
}

}
////// AKI FINALIZA A CLASSE CadastroFornecedorDAO /////

package ConexaoBB;

public class FabricaConexao {

private static final String URL_CONEXAO = "jdbc:mysql://localhost:3306/EnigMaisBancoDDados";
private static final String USUARIO = "root";
private static final String SENHA = "senhacorreta";

public static Connection getConexao()throws SQLException{
	try{
		Class.forName("com.mysql.jdbc.Driver");
		return DriverManager.getConnection(URL_CONEXAO, USUARIO, SENHA);
	}
	catch (ClassNotFoundException e){
		throw new SQLException(e.getMessage());
	}
}

}
////// AKI FINALIZA A CLASSE FabricaConexao /////[/code]

No Banco de dados MySql com o seguinte historico:

  • use enigmaisbancoddados
  • CREATE TABLE fornecedor (id bigint not null auto_increment,nome varchar (255))
  • CREATE TABLE fornecedor (idfornecedor bigint not null auto_increment,nomefornecedor varchar (255), PRIMARY KEY (IDFORNECEDOR))
  • SELECT * FROM enigmaisbancoddados.fornecedor
  • create database cadastro
  • use cadastro
  • CREATE TABLE cadastro (
  • codigo int(10) unsigned NOT NULL auto_increment,
  • nome varchar(60) NOT NULL default ‘’,
  • PRIMARY KEY (codigo)
    )

Abner David da Silva Tole veja o seu erro!

Caused by: java.lang.NullPointerException
at CadastroFornecedor.getSalvCadFornecedor(CadastroFornecedor.java:296) 

Verifique seu método getSalvCadFornecedor.

Esse é o meu método getSalvCadFornecedor. >

[code]private static JButton getSalvCadFornecedor() {
if (SalvCadFornecedor == null) {
SalvCadFornecedor = new JButton();
SalvCadFornecedor.setBounds(new Rectangle(289, 430, 141, 24));
SalvCadFornecedor.setText(“Salvar/Fechar”);
try{
CadastroFornecedor fornecedor = new CadastroFornecedor();
CadastroFornecedorDAO dao = new CadastroFornecedorDAO();

            fornecedor.setName(NomeFornecedorCampo.getText());//Acho que o erro está aki <<<   
               
            dao.adiciona(fornecedor);   
               
            System.out.println("Gravado");   
        } catch (SQLException e){   
            e.printStackTrace();   
        }   
    }   
    return SalvCadFornecedor;   
}   

[/code]

como deveria ser?

Cara vai debugando seu código que fica mais fácil de vc encontrar o erro.
Coloca um ponto de interrupção aki:

CadastroFornecedor fornecedor = new CadastroFornecedor(); 

verifica se ta tudo ok,

fornecedor.setName(NomeFornecedorCampo.getText());

verifica se foi setado o valor corretamente,

dao.adiciona(fornecedor); 

e depois se foi gravado!

Ahh, e ai invéz de vc colocar:

fornecedor.setName(NomeFornecedorCampo.getText()); 

por

fornecedor.setName(getNomeFornecedorCampo().getText());  

Quando eu substitui

fornecedor.setName(NomeFornecedorCampo.getText());//aki

por

fornecedor.setName(getNomeFornecedorCampo().getText());

resolveu!

mas qndo eu acesso o banco de dados… a informação salva foi:

idfornecedor = 1 e nomefornecedor = frame0

sendo que eu tinha colocado EnigMais no nomefornecedor.

O que será?

Cara mais cadê o seu evento pra pegar o clique no botão pra gravar os dados.?
Dessa forma que ta ai, quando tu classe rodar vai ler esse método e gravar os dados do fornecedor sem pegar o que vc digitou
no seu textfield.
Tenta algo como:

private static JButton getSalvCadFornecedor() {     
         if (SalvCadFornecedor == null) {     
             SalvCadFornecedor = new JButton();     
             SalvCadFornecedor.setBounds(new Rectangle(289, 430, 141, 24));     
             SalvCadFornecedor.setText("Salvar/Fechar");     
             SalvCadFornecedor.addActionListener(new java.awt.event.ActionListener() {
                  public void actionPerformed(java.awt.event.ActionEvent evt) {
                          try{     
                                  CadastroFornecedor fornecedor = new CadastroFornecedor();     
                                  CadastroFornecedorDAO dao = new CadastroFornecedorDAO();     
                      
                                   fornecedor.setName(getNomeFornecedorCampo().getText());//Acho que o erro está aki <<<     
                      
                                  dao.adiciona(fornecedor);     
                      
                                  System.out.println("Gravado");     
                            } catch (SQLException e){     
                                      e.printStackTrace();     
                            }
                  }
            });     
         }     
         return SalvCadFornecedor;     
   } 

Parabéns cara… vc é mto bom!
vc ganhou um doce.
=]

Mas serio… ajudou d+… brigadão!

Ta valendo cara, que bom que coseguiu resolver o problema!
Não esquece de colocar [ RESOLVIDO ].
Flw