Estou com um problema em que não consigo por uma mask num JPasswordField. Alguém sabe como posso fazer para aceitar apenas no máximo 4 caracteres e apenas números?
Sobre masks: Como eu faço uma mask sem que ela apague se não atingir o limite?
Exemplo:
MaskFormatter numeroMask = new MaskFormatter("####");
Eu quero que essa mask aceite apenas números com no máximo 4 digitos, embora eu não queira que se o usuário digitar 3 números a mask apague os 3 números, como se aquilo estivesse errado.
Pelo que me lembro de Swing o JPasswordFiled já tem uma mascará para os caracteres de entrada!
Então uma solução simples é criar um método validartor() testando a quantidade de caracteres, dessa forma você até testar outras coisas, como só números, só letras, ou a senha tem que ter pelo menos uma letra e também pode retornar uma mensagem para o usuário de o porque não foi aceita a senha informada.
Até mais.
Lukas0145
Danilo Carvalho:
Bom dia!
Pelo que me lembro de Swing o JPasswordFiled já tem uma mascará para os caracteres de entrada!
Então uma solução simples é criar um método validartor() testando a quantidade de caracteres, dessa forma você até testar outras coisas, como só números, só letras, ou a senha tem que ter pelo menos uma letra e também pode retornar uma mensagem para o usuário de o porque não foi aceita a senha informada.
Entretanto, há um bug: se vc pressionar a tecla B, por exemplo, isso será mais rápido que o for e portanto irá aceitar os vários B pressionados. Ou também quando você digita uma letra e logo em seguida da um tab, ele aceita a letra por ainda nao ter tido tempo de verificar no for.
Danilo_Carvalho
Então você esta fazendo a verificação a cada tecla pressionada, certo?
Eu faria o seguinte:
Realizaria o teste se fosse pressionada a tecla ENTER, ou clicado no botão login caso exista, pois assim ao submeter a senha ela será testada, não vejo a necessidade de testar a senha a cada tecla pressionada!
Qualquer coisa posta ai!
Até mais.
Lukas0145
Danilo Carvalho:
Então você esta fazendo a verificação a cada tecla pressionada, certo?
Eu faria o seguinte:
Realizaria o teste se fosse pressionada a tecla ENTER, ou clicado no botão login caso exista, pois assim ao submeter a senha ela será testada, não vejo a necessidade de testar a senha a cada tecla pressionada!