[GUI SWING] Como fazer session ou cookie

Olá, existe a possibilidade de eu pegar um valor e deixar ele fixo em todas as janelas de uma aplicação Gui Swing ? Semelhante a SESSION ou COOKIE.

Por exemplo o id de um usuário logado. Eu não quero ficar criando métodos que recebam esse valor em todas as telas.

Obrigado.

Você pode usar um campo protegido estático na tela principal. Ele ficaria acessível às outras classes/telas…

public class MainGUI {

  protected static long id;

  ...

Ou talvez algo melhor, com mais informações…

public class MainGUI {
  
  protected static User user;

  ...

Ou, se você está utilizando algum banco de dados pode usar ele para armazenar o usuário logado.

mesmo eu tendo dado um dispose() na primeira tela ?

por exemplo uma tela de login:

ao fazer a validação de login e senha, a tela de login é fechada (this.dispose():wink: … mesmo eu colocando um static nessa tela, o valor dela será válido para as outras ?

Sim.
Primeiro porque campos estáticos não dependem de instância, ou seja, vc não precisa dar um…

new MainGUI();

…para usar um de seus campos.

Segundo porque se você der um dispose() em uma janela, mas continuar referenciando seu objeto, ele continuará ativo e e disponível para uso.
Abraço

Mas creio que essa não seria a melhor abordagem. Já considerou usar algum banco de dados para a aplicação?
Se vc não usa banco de dados, poderia considerar a utilização de um embarcado e orientado a objetos como DB4J ou Prevailer, ambos são muito bons e maduros o suficiente para aplicações realmente grandes, se precisar…

Então na primeira tela eu coloco:

protected static int glob = 12345;

Na tela seguinte, como eu recupero esse valor ?

essa variável só foi criada na tela 1 por exemplo, como eu uso o valor dela na tela 2 ??

Recupera por referência direta mesmo

int id = PrimeiraTela.glob;

pra definir a mesma coisa

PrimeiraTela.glob = 12345;

Detalhe é que todas tem que estar no mesmo pacote para poderem acessar a variável dessa forma.