TraversalPolicy

No construtor da minha tela eu faço isso:

myTraversalPolicy = new MyTraversalPolicy(this.componentesFoco()); this.setFocusTraversalPolicy(myTraversalPolicy);

Alguém saberia me dizer porque a cada mudança de foco dentro da tela o sistema acessa duas vezes a minha classe MyTraversalPolicy? :frowning:

Estou tendo problemas por causa disso, agradeço qq. ajuda!

Grata,

Eu fiz um teste aqui, e reparei o seguinte. As classes do swing que ficam por trás da gerência de foco, de fato, acessam duas vezes o nosso Traversal quando mudamos o foco. Pelo que percebi, sempre que vc vai “pra frente” no ciclo, ele acessa getComponentAfter e getFirstComponent. Quando vai “pra trás”, getComponentBefore e getLastComponent. Provavelmente faz isso pra manter algum tipo de controle na gerência do foco

Sim, isso mesmo… se bem que não era bem esse o meu problema…

O acesso duplo a que eu me referia era durante a troca de aba de um JTabbedPanel. Eu fiz uma classe MyTraversalPolicy e por algum motivo, quando o foco saia do último componente da primeira aba pra ir para o primeiro da segunda a minha classe era chamada cerca de 3 vezes!

Mas já consegui acertar (depois de muito apanhar, mas consegui). O fato é que durante a troca de abas além de fazer oque vc já falou, o dito cujo passava o foco por um panel que eu tenho em cada aba. Isso ferrava uns controles pra saber onde jogar o foco que eu tenho, então não ficava tão óbvio que era isso que estava acontecendo. Demorou pra eu entender e tb. tive outros problemas, mas enfim está funcionando…

Vlw pela atenção! :wink: