private Sessao() {
}
public void setUsuario(Usuario usuario) {
this.usuario = usuario;
}
public Usuario getUsuario() {
return usuario;
}
public static Sessao getInstance() {
if (instance == null) {
instance = new Sessao();
}
return instance;
}
e quando vou chamá-la para pegar o usuário que já tinha passado se eu ponho um sout para verificar se ta pegando o usuário certinho da um erro de:
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
Usuario usuario = new Usuario();
usuario = Sessao.getInstance().getUsuario();
System.out.println(usuario.getNome());
// Aqui está instanciando um Usuario
Usuario usuario = new Usuario();
// Aqui está matando o usuário criado na linha acima
usuario = Sessao.getInstance().getUsuario();
// agora o novo usuário está null e não tem como invocar métodos nele
System.out.println(usuario.getNome());
private void btn_EntrarActionPerformed(java.awt.event.ActionEvent evt) {
Usuario usuario = new Usuario();// esse usuario aqui não é usado pra nada, pode apagar
UsuarioDao usuarioDao = new UsuarioDao();
LinkedList lista = usuarioDao.busca();
nome = txt_Nome.getText();
senha = txt_Senha.getText();
for (int i = 0; i < lista.size(); i++) {
Usuario u = lista.get(i);
if (nome.equals(u.getNome())) {
if (senha.equals(u.getSenha())) {
Sessao sessao = Sessao.getInstance();
sessao.setUsuario(u); // tem certeza que esta linha foi executada?
frameMain.setVisible(true);
this.setVisible(false);
break;
} else {
JOptionPane.showMessageDialog(null, "Senha incorreta");
break;
}
} else {
JOptionPane.showMessageDialog(null, "Usuario não cadrastrado");
break;
}
}
}
Veja, você disse que o nome é inserido em uma tela e você quer ler em outra.
Isso só vai funcionar se Sessao for singleton, ou seja, você não pode ter um
Você é bem parcimonioso com relação a postar código, então, suponho o seguinte:
Você tem uma classe Sessao, mais ou menos assim
public class Sessao {
private static final Sessao INSTANCE = new Sessao();
private Usuario usuario;
//outras cosias
public Sessao getInstance() {
return INSTANCE;
}
//outras cosias
public Usuario getUsuario(){
return this.usuario.
}
}
Creio que muito parecido com isso.
É o que te permite fazer isso:
Sessao instance = Sessao.getInstance();
E, ao mesmo tempo, fazer isso
Sessao instance = new Sessao();
Ou seja, é uma classe pseudo singleton, uma vez que você pode criar mais de uma instância de objeto da mesma.
E, provavelmente, este seja o teu problema.