HashMap

Fala Pessoal!

Vê se vcs podem me ajudar… tenho um sistema(tela gráfica) que estou utilizando o hashMap para criar uma lista de funcionários.

Nesta mesma tela, eu tenho um botão “visualizar” que aponta para um outro JFrame(“exibir”) onde eu passo como paramêtro o nome da minha Lista;

Por exemplo, eis o código que eu estou utilizando para gerar o JFrame “exibir”

Exibir e = new Exibir(Lista); //
e.show();

Quando eu chego na tela exibir, eu só consigo acessar os dados da lista se eu chamar ela dentro do método Exbir. Se eu criar outro método e tentar acessa-la eu não consigo.

Como posso resolver esse problema?

Coloca numa váriavel de classe a lista que você recebe no construtor.

Esse metodo “Exibir” de que vc fala provavelmente é o construtor da classe.

Se vc quiser acessar essa lista em outros metodos na classe, vc tera que armazenar essa referencia dentro da classe.
Crie uma variavel de instancia dentro da classe, e atribua no construtor.

Ex:

public class Exibir extends JFrame {

    private Map map; // Aqui esta sua variavel de instancia, que fara a lista ser visivel em outros metodos

    public Exibir( HashMap map ) {
    
        this.map = map;

    }

    private void metodoQueVeOMap() {
        System.out.println( map.get(0) );
    }


}

“variavel de classe” é um termo relacionado a variaveis static. Nao se aplica no caso.
Creio que o mais apropriado é “variavel de instancia” mesmo (global)

bom deixa eu ver se entendi…

o metodo "exibir’ q vc fala de ve ser o construtor de JFrame… -.-’

provavelmente ele deve estar assim:

public void exibir(HashMap lista){ /* aqui vc cria a "telinha" */ }

bom isso ai realmente vc so vai consegui acessar localmente pois lista e um variavel local… -.-'
pra vc acessar de outro metodo vc precisa fazer assim;

private HashMap lista; public void exibir(HashMap lista){ this.lista = lista; /* aqui vc cria a "telinha" */ }

bom acho q eh isso q vc quer , não?

a respeito do Frame não usa o .show usa o .setVisible(true)
tipo…

Exibir e = new Exibir(Lista); e.setVisible(true);

blz espero ter ajudado…

Certo. eu tinha pensado de instancia, mas escrevi de classe.

Obrigado pelo toque.

pow os caras aqui são ligeiros…
enquanto estava escrevendo minha resposta os caras ja tinham dado as deles…
:shock:

Fala Pessoal!

Valeu pela força! Consegui pegar as informações da lista utilizando uma “variável de instância”.

Quanto ao Exibir, sim eu me referia ao construtor.

Obrigado de novo!!

abraços!