[Resolvido]Mudar foco de campos em aplicação java

Bom dia Prezados,

Gostaria da ajuda de vocês para conseguir implementar uma ação na aplicação que estou desenvolvendo, o que estou querendo fazer é delimitar a capacidade de caracteres que um campo possa receber e quando o usuário chegar a esta capacidade o foco mude para o campo seguinte.

bom dia tallys!

velho, só com isso que vc falou vai ficar difícil pro pessoal te ajudar, tem que ser mais especifico… Que tipo de aplicação é ? Web ou Desktop ? se é Web vc ta usando JSF ou algum outro framework web?

pra cada tipo vai ter uma solução diferente.

[quote=DaniloAndrade]bom dia tallys!

velho, só com isso que vc falou vai ficar difícil pro pessoal te ajudar, tem que ser mais especifico… Que tipo de aplicação é ? Web ou Desktop ? se é Web vc ta usando JSF ou algum outro framework web?

pra cada tipo vai ter uma solução diferente.[/quote]

Aplicação Desktop !!!

Da pra fazer desse modo.

No evento KeyPress do seu campo. Verifica a quantidade de caractares e muda o focus.

if (JTextField.lenght() > 10){ JTextField2.requestFocus; //caixa d texto2 recebe o focus.. }

[quote=charleston10]Da pra fazer desse modo.

No evento KeyPress do seu campo. Verifica a quantidade de caractares e muda o focus.

if (JTextField.lenght() > 10){ JTextField2.requestFocus; //caixa d texto2 recebe o focus.. }[/quote]Ao invés de usar requestFocus(), use requestFocusInWindow().

Ao usar KeyPressed, existe uma pequena falha de comportamento: Se vier de um Ctrl+C - Ctrl+V com um texto maior que a quantidade máxima, o texto fica (se mantiver o código acima). Se tratar e truncar o texto (com substring) o texto vai aparecer inteiro e posteriormente será apagado e, isso pode ser notável pelo usuário.

Caso esse comportamento seja aceitável, tranquilo. Mas, dependendo do cliente, pode ser que ele não aceite isso. Minha sugestão, então é usar Document (onde é possível controlar o que está sendo inserido antes que o valor “inputado” seja “commitado” no campo). Caso seja permitida a inserção E a quantidade total fora atingida, pode utilizar o requestFocus para transitar entre os campos.