[RESOLVIDO] Erro em um atributo null porem eu instanciei e continua dando erro

eu tenho uma classe que esta criando uma sessão.

private static Sessao instance = null;
private Usuario usuario;

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());

Está dando erro na hora de chamar o método getNome() porque usuario é nulo.
Você deve instanciar ou atribuir um valor para usuario.

// 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());

entendi o raciocínio porem eu quero pegar o usuário da sessão eu já tinha tentado pegar ele direto e também não deu certo como eu faço?

Usuario usuario = Sessao.getInstance().getUsuario();
System.out.println(usuario.getNome());

Quando e onde o usuário da sessão é inicializado?

Primeiramente eu tenho uma tela de login e depois de confirmar se usuário tem cadastrado no banco eu passo ele segue o código do botão:

private void btn_EntrarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
Usuario usuario = new Usuario();
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);
frameMain.setVisible(true);
this.setVisible(false);
break;
} else {
JOptionPane.showMessageDialog(null, “Senha incorreta”);
break;
}
} else {
JOptionPane.showMessageDialog(null, “Usuario não cadrastrado”);
break;
}
}
}

O erro esta sendo na próxima tela por que eu quero chamar ele Usuário para fazer a confirmação de quem eh e dar setar os campos conforme o tipo dele.

Sessao é um singleton?

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;
        }
    }
}

Fui la no sessão e puis um sout

public void setUsuario(Usuario usuario) {
System.out.println(usuario.getNome());
this.usuario = usuario;
}

e imprimiu o nome certinho então esta sendo executado sim

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

Sessao instance = new Sessao();

Na classe onde pretende ler o nome.

Por favor, sempre formate seu código Java quando postar ele aqui, tem um botão próprio pra isso, o Texto pré-formatado, representado pelo botão </>

OK, você pôs um println no método setUsuario, mas quem chamou esse método?
Esse método foi chamado por aquele trecho de código que eu perguntei?

for (int i = 0; i < lista.size(); i++) {
    Usuario u = lista.get(i);
    if (nome.equals(u.getNome())) {
        if (senha.equals(u.getSenha())) {
            /*
             * ESSE IF AQUI FOI EXECUTADO?
             */
            Sessao sessao = Sessao.getInstance();
            sessao.setUsuario(u);
            frameMain.setVisible(true);
            this.setVisible(false);
            break;
        } else {
            JOptionPane.showMessageDialog(null, "Senha incorreta");
            break;
        }
    } else {
        JOptionPane.showMessageDialog(null, "Usuario não cadrastrado");
        break;
    }
}

sim foi chamado obrigado pela dica do </>

Sim porem na que eu estou lendo eu não coloque esse código somente no login que eu estou passando o valor a ela.
login:

UsuarioDao usuarioDao = new UsuarioDao();
LinkedList<Usuario> 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);
            frameMain.setVisible(true);
            this.setVisible(false);
            break;
        } else {
            JOptionPane.showMessageDialog(null, "Senha incorreta");
            break;
        }
    } else {
        JOptionPane.showMessageDialog(null, "Usuario não cadrastrado");
        break;
    }
}

e a classe que eu estou tentando ler :

Usuario usuario = Sessao.getInstance().getUsuario();
        //System.out.println(usuario.getNome()); 

se eu tiro o comentário da o erro de null e se eu imprimo o usuário sem ser o nome aparece Principais.Usuario@7dbabcc4

Tem caroço nesse angu, ah se tem.

Se tu faz assim:

Usuario usuario = Sessao.getInstance().getUsuario();
System.out.println(usuario.getNome()); 

Dá erro;

E se tu faz assim:

Usuario usuario = Sessao.getInstance().getUsuario();
System.out.println(usuario); 

Aí aparece Principais.Usuario@7dbabcc4?

Posta o fonte completo da classe Usuario.

public class Usuario {

    private int ID_usuario;
    private String nome;
    private String senha;
    private int ID_grupo_usuario;
    private String grupo_usuario;
    public int getID_usuario() {
        return ID_usuario;
    }

    public void setID_usuario(int ID_usuario) {
        this.ID_usuario = ID_usuario;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public int getID_grupo_usuario() {
        return ID_grupo_usuario;
    }

    public void setID_grupo_usuario(int ID_grupo_usuario) {
        this.ID_grupo_usuario = ID_grupo_usuario;
    }

    public String getGrupo_usuario() {
        return grupo_usuario;
    }

    public void setGrupo_usuario(String grupo_usuario) {
        this.grupo_usuario = grupo_usuario;
    }

 
}

e como tem que ficar então a classe que guarda e lê o usuário?

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.

então meu código da classe Sessão eh esse:

public class Sessao {

    private static Sessao instance = null;
    private Usuario usuario;

    private Sessao() {
    }

    public void setUsuario(Usuario usuario) {
        System.out.println(usuario.getNome());
        this.usuario = usuario;
    }

    public Usuario getUsuario() {

        return usuario;
    }

    public static Sessao getInstance() {
        if (instance == null) {
            instance = new Sessao();
        }
        return instance;
    }
}

e sobre o sua explicação eu não consegui entender eu tentei na tela de login trocar o:

Sessao instance = Sessao.getInstance();

por:

Sessao instance = new Sessao();

e deu erro ele pedi para torná-la publica

Amigo, faça o seguinte, posta o StackTrace completo do seu erro.