Bom dia galera!
Seguinte…
Tenho um frame (wizard) que possui botoes de “Proximo” e “Anterior” e conforme os passos vou adicionando JPanels
conforme cada passo dinamicamente.
E quando chamo esses panels eu dou um requestFocus no primeiro TextField de cada um deles, para facilitar para o cara
nao precisar usar o teclado.
O problema eh que em determinadas situacoes o requestFocus funciona e outras ele nao funciona. Ele passa pelo requestFocus e
nao ganha foco. Ai que vem o detalhe, mas se eu der ALT TAB e sair da tela e voltar ele manda o focu para o componente.
Da impressao que ele se perde na Thread.
Tentei ja chamar repaint, updateUI…
Procurei tambem em foruns e google e achei varias pessoas com o mesmo problema…
achei ate uma ‘Solucao’, soh que funciona em alguns casos e outros nao.
E eh a seguinte:
SwingUtilities.invokeLater(new Runnable() {
public void run() {
if (pComponent instanceof JTextComponent) {
((JTextComponent) pComponent).requestFocusInWindow();
}
}
});
Assim ele força a disparar uma nova thread soh para o focu… mas como eu disse ainda tem alguns casos que nao funciona.
Alguem ja passou por algo parecido ou sabe como contornar isso?
Grato desde já!
Luiz