Hmmm… com certeza ajudou, mas agora surgiu outro problema…
Vou tentar especificar mais ou menos a idéia do que estou desenvolvendo pra que as vezes alguém conheça outra possibilidade.
Tenho um menu com algumas funções que serão aplicadas em janelas (JInternalFrames) que vão sendo lançadas pelo usuário.
Porém, a função escolhida deve atuar somente na Internal Frame que estiver em Foco.
Ou seja, eu criei uma variável chamada: janelaFocus; adicionei todos os internal frames gerados em um List (java.util.List);
e adicionei um FocusListener em cada internal frame.
Supomos que 5 internal frames estejam abertos. Quando o usuário mudar o foco para a 3ª janela, por exemplo, o Focus Listener
deveria acessar a variável janelaFocus e armazenar o seu valor gerado na List. No caso, 2… (0, 1, --> 2 <-- ). Daí, quando
o mesmo clicar no menu e escolher a ação, o ActionListener pega o valor de janelaFocus e faz o seguinte:
panelImagem panelFocus = (panelImagem)paineis.get( getJanelaFocus() );
panelFocus.camadas( false );
Cria uma variável panelFocus, converte em panelImagem (que é o JPanel exibido dentro de cada internal frame) o paineis.get,
que é o array List de todas as internal frames geradas, e nos parênteses: (o valor da janela em foco - janelaFocus)…
Quando eu troco o getJanelaFocus() pelo inteiro 2, por exemplo, ele funciona perfeitamente. Aplica a função na terceira
janela gerada pelo usuário. Mas como esse valor tem de relacionar-se com a janela em foco, estou tendo dificuldades pra
pensar em como fazer isso.
Segue o trecho do código onde ele tenta armazenar o valor janelaFocus:
[code]panelImagem mapa = new panelImagem();
paineis.add( mapa );
frame.addFocusListener( new FocusListener() {
public void focusGained( FocusEvent f )
{
setJanelaFocus( paineis.indexOf( mapa ) );
}
public void focusLost( FocusEvent f )
{
}
}
);[/code]
Estou usando o Eclipse e ele sublinha a variável mapa dentro de indexOf( mapa ) com o seguinte erro:
Cannot refer to a non-final variable mapa inside an inner class defined in a different method
Alguém sabe como resolver ou me recomenda outra maneira de armazenar alguma característica da janela em Foco pra que eu aplique funções à mesma nos menus?
Abraços… e, será que alguém me entendeu? auhahua