Você já tentou:
JTextField.setFocusable(true);
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
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.