[GUI SWING] Como fazer session ou cookie

6 respostas
T

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.

6 Respostas

juno.rr

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.

T

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 ?

juno.rr

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

juno.rr

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…

T

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 ??

juno.rr

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.

Criado 2 de setembro de 2011
Ultima resposta 3 de set. de 2011
Respostas 6
Participantes 2