Como resolver o erro do NullPointerException

6 respostas
claytoncalixto

Estou desenvolvendo esta classe de acesso ao sistema, mas não consigo visualizar este erro e nem o netbeans me aponta o dito cujo, o que devo fazer, os amigos de plantão poderiam me ajudar?

package projetofinal.Projeto2008;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;

class JAcesso extends JFrame{

JTextField email; 
JPasswordField senha;
JButton enviar,cancelar;
JLabel lb_email,lb_senha;
String txt,logEmail,logSenha;
String cons_Email;
char[] cons_Senha;

private String validaLogin;
private String cancelarLogin;

	public JAcesso(){

     		this.setSize(600,400);
		this.setTitle("Formulario Acesso ao Sistema");
		
		//Cria um objeto  JPanel para conter o painel
		JPanel p1 = new JPanel(); 
		JPanel p2 = new JPanel(); 
		JPanel p3 = new JPanel(); 

		//adciona o painel no formul�rio
		this.getContentPane().add(p1,BorderLayout.NORTH);
		this.getContentPane().add(p2,BorderLayout.CENTER);
		this.getContentPane().add(p3,BorderLayout.SOUTH);	

		//Cria e adciona um JLabel e JText
		
		//---------Campo Email do Usuario---------------

		JLabel lblEmail =new JLabel(" E-mail");
		p1.add(lblEmail);
		lblEmail.setBounds(0,560,200,20);	
		
		JTextField txtEmail = new JTextField(25);
		p1.add(txtEmail);
		txtEmail.setBounds(0,560,200,20);	

		//---------Campo Senha do Usuario---------------

		JLabel lblSenha =new JLabel("Senha");
		p2.add(lblSenha);
		lblSenha.setBounds(0,580,200,20);	
		
		JPasswordField txtSenha = new JPasswordField(25);
		p2.add(txtSenha);
		txtSenha.setBounds(0,580,200,20);	
		
		
		JButton btnEnviar = new JButton("Enviar");
                JButton btnCancelar = new JButton("Cancelar");
 		
		p3.add(btnEnviar);
                p3.add(btnCancelar);
				
		 

		setLocationRelativeTo(null); 
		setSize(650,300);      
		setVisible(true); 

//Acoes dos botoes Gravar,Listar e Excluir
                
	   btnEnviar.addMouseListener( new MouseAdapter() {
            @Override
	        public void mouseClicked(MouseEvent evento) {
	          txt = ((JButton) (evento.getSource())).getText();
	             validaLogin();	            		
	   }}); //Parenteses
           
           btnCancelar.addMouseListener( new MouseAdapter() {
            @Override
	        public void mouseClicked(MouseEvent evento) {
	          txt = ((JButton) (evento.getSource())).getText();
	             cancelarLogin();	            		
	   }}); //Parenteses

   } 
		  private  String validaLogin( ){
		     DAO database = new DAO();	    		           
			if(txt.equals("Enviar")) {
			  try {
	        	    database.Banco(); 
			    database.open();
	                    cons_Email  = email.getText();	 
			    cons_Senha = senha.getPassword();
	                    ResultSet rs = database.executeQuery("Select * From CadUsuarios Where Email= "+cons_Email +"and Senha="  +cons_Senha);
		            while(rs.next()){
		   	      logEmail   = rs.getString("Email");
		   	      logSenha  = rs.getString("Senha"); 
				if((logEmail.equals(email) ) && (logSenha.equals(senha) )){
				   JProjetoFinal app = new JProjetoFinal(); 	
			              app.setVisible(rootPaneCheckingEnabled);	                          
				   }                                   
				   
		            }	             
	
	                  }catch(Exception e) {
	                     System.out.println(e);	
	                  database.close();  
                          }

                        }
                     return validaLogin;
		  }
                  
                  private void cancelarLogin(){
                      System.exit(0);
                  }
}

6 Respostas

Marky.Vasconcelos

Posta o StackTrace com o erro… ele diz onde esta o erro mesmo que as vezes meio confuso.

M

Bom, não olhei o código do seu programa com calma, mas se é lançada uma excessão do tipo NullPointerException é porque vc está chamando um método em alguma referencia à qual ainda não foi atribuída uma instância de uma classe, ou seja, a referência é nula.
Dê uma revisada e veja onde vc pode ter feito isso.

Esperto ter ajudado.

Até mais.

fiaux

Resolve com if na linha onde o stack trace acusa o erro. Isso se você espera que venha null.

claytoncalixto

Fala Galera td bem? Ai que esta o porem não aparece stack tracer nenhum só o nullpinterexcepition mesmo, tem como debugar o codigo e como faço isto?

B

Mude este

}catch(Exception e) { System.out.println(e);
pra este

}catch(Exception e) { e.printStackTrace();

gilmaslima

Dei uma breve olhada no seu código e encontrei essas duas variaveis String:

private String validaLogin;  
private String cancelarLogin;

Em nenhum momento essas variaveis são inicializadas e são usadas como retorno nos métodos “validaLogin” e “cancelarLogin”
Esses dois métodos estão retornando null porque é o valor padrão de objetos não inicializados inclusive Strings

A chamada desses métdos também esta estranha, se o tipo de retorno é String seria mais sensato usar o retorno deles para algo.

Exemplo:

String retornoMetodo = cancelarLogin();

Espero ter ajudado!

flw

Criado 27 de novembro de 2008
Ultima resposta 28 de nov. de 2008
Respostas 6
Participantes 6