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

Você já tentou:

JTextField.setFocusable(true);

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?

[quote=cjatoba]Você já tentou:

JTextField.setFocusable(true); [/quote]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.

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.

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