Re:Dúvida com transferência de foco entre campos

4 respostas
cjatoba

Você já tentou:

JTextField.setFocusable(true);

4 Respostas

WellingtonRamos

Olá,

Estou com um pequeno problema e ainda não encontrei uma solução adequada.

Preciso saber, ao executar um InputVerifier definido a um determinado JTextField qual o componente foi eleito para receber o foco (mas que, não necessariamente receberá visto que o InputVerifier não verificou ainda).

Quando estou usando tabulação, o FocusTraversalPolicy resolveu bem o problema mas existe uma outra forma de trocar o foco: Mouse.
E esse é meu problema. Ao clicar em outro componente.

Antes que alguém proponha um MouseListener, o método mouseClicked ocorre apenas após o verify ter sido chamado. O mesmo vale para mousePressed.

Sobrescrevi o requestFocus do campo e, através do getFocusOwner, tive o proprietário atual do foco e pelo requestFocus, sei quem tá querendo o foco, mas não gostei dessa implementação.

Alguém conhece alguma outra forma de obter isso sem ter que fazer esse tipo de sobrescrita?

WellingtonRamos

cjatoba:
Você já tentou:

JTextField.setFocusable(true);

Gostaria que isso resolvesse meu problema :wink:
O campo pode receber foco (ou seja jTextField.isFocusable() == true).

Meu problema é saber quem vai ganhar o foco antes do mesmo ganhar o foco.

WellingtonRamos

Descobri que o controle por requestFocus continua não atendendo meu problema.
Ocorre que, em JLists e JComboBoxes, mesmo o foco não indo para esses componentes, ainda assim estão recebendo os comandos do mouse (selecionando um item, no caso da JList ou abrindo a popup no caso da JComboBox).

Andei pesquisando bastante na internet e ainda não consegui achar uma solução.

WellingtonRamos

Consegui resolver.
Depois eu explico como. Só adianto que tive que “subistituir” uma classe do swing.

Criado 30 de junho de 2011
Ultima resposta 5 de jul. de 2011
Respostas 4
Participantes 2