Regatar posições de um map

Gente, eu tô com uma duvida simples…Eu tenho um TreeMap que contem elementos de uma classe que eu criei chamada BottomFrame. Eu preciso criar um método que resgate cada um dos elementos do meu TreeMap e para cada um desses elementos, eu quero chamar um metodo que pertence a classe BottomFrame. Acredito que eu deva resgatar cada uma das posições e fazer um cast pra BottomFrame, mas eu não sei como… Alguém pode me ajudar?

private TreeMap<String, BottomFrame> selecionados = new TreeMap<String, BottomFrame>();

 public  void printTreeMap2() {
     Iterator iterator = selecionados.entrySet().iterator();
     while (iterator.hasNext()) {
        Map.Entry entry = (Map.Entry) iterator.next();

     }
 }

Não é preciso usar cast. Generics servem, em Java, para evitar casts desnecessários.

 private TreeMap<String, BottomFrame> selecionados = new TreeMap<String, BottomFrame>();  
   
 public  void printTreeMap2() {  
      for (Map.Entry<String, BottomFrame> entry : selecionados.entrySet()) {
          String nome = entry.getKey(); // por exemplo
          BottomFrame frame = entry.getValue(); // por exemplo
      }
 } 

Eu fiz isso, mas qdo eu executo, dah erro de ponteiro nulo…

    public  void organizaCascata() {
           contBottom=0;
           for (Map.Entry<String, BottomFrame> entry : selecionados.entrySet()) {
              BottomFrame frame = entry.getValue();
              frame.dispose();
           }//end for
      }//end metodo

Provavelmente o ponteiro nulo deve ocorrer na linha 2 deste código:

           BottomFrame frame = entry.getValue();  
           frame.dispose();  

Se isso ocorreu, provavelmente você fez alguma coisa errada ANTES, na hora de inserir os BottomFrames na sua variável selecionados. OK?

Não, a parte de inserir ele insere direitinho

Eu sei que ele insere direitinho. Não sei se você está inserindo o valor correto ou então null.

Não entendi qual a sua pergunta…
:roll:

Vou lhe explicar melhor. Em um Map, você usa o método “put” para inserir um par “chave”, “valor”.

Acontece que pelo sintoma, você insere corretamente a chave, mas está usando o valor como “null”.
Por que? Eu não sei - você é que tem de debugar seu programa para ver por que é que está usando null e não um valor qualquer mas correto.
Então, na hora de tentar pegar o valor (dada a chave correspondente), você está pegando o valor null.