bom é o seguinte eu tenho alguns campos no meu programa que eu preciso que so aceitem numeros e tenham um valor maximo de 10 caracteres,
porem o problema é que no comeco eu usei jtextfield mas como eu precisava de formatacao mudei para o jformattedtextfield, mas ele nao serve
para o que eu preciso, pq se eu colocar o maskformatter assim
MaskFormatter comFoco = null;
try
{
comFoco = new MaskFormatter("##########");
comFoco.setValidCharacters("0123456789");
}
ele nao deixa o usuario digitar menos de 10 caracteres, se for digitado menos e o usuario trocar o campo ele apaga o campo, entao se alguem souber
outra maneira de fazer isso com o jtexfield, eu agradeco muito
Existem duas maneiras de fazer. Caso você queira verificar a cada tecla pressionada, crie seu próprio Document (que só aceita números e no máximo 10 caracteres) e use-o no seu campo. Há um exemplo similar na própria documentação da classe JTextField (aparece como UpperCaseField).
Caso você queira verificar quando o usuário tirar o foco daquele campo, é mais simples. Adicione um FocusListener na sua caixa de texto e no evento de focusLost você verifica se os valores no campo são válidos.
entao no comeco eu fiz isso, mas eu achei que ficou meio “gambiarra”, e queria faze algo mais “limpo” digamos assim,
eu vou tentar fazer com o document, obrigado pela ajuda
[quote=paulomn]entao no comeco eu fiz isso, mas eu achei que ficou meio “gambiarra”, e queria faze algo mais “limpo” digamos assim,
eu vou tentar fazer com o document, obrigado pela ajuda [/quote]
Ei-lo: http://www.guj.com.br/posts/list/107425.java#579803
[quote=ViniGodoy][quote=paulomn]entao no comeco eu fiz isso, mas eu achei que ficou meio “gambiarra”, e queria faze algo mais “limpo” digamos assim,
eu vou tentar fazer com o document, obrigado pela ajuda [/quote]
Ei-lo: http://www.guj.com.br/posts/list/107425.java#579803[/quote]
vlw vinigodoy ajudo muito
coloca [RESOLVIDO] no titulo da lista…vlw