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.
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?
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]
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.