Não permitir acentuação - Java Desktop  XML
Índice dos Fóruns » Interface Gráfica
Autor Mensagem
rockstorm
Virtual Machine Man
[Avatar]

Membro desde: 28/09/2004 08:37:10
Mensagens: 522
Localização: SBC
Offline

Boa tarde a todos.

Estou desenvolvendo um pequeno aplicativo onde tenho que "não deixar" o usuário digitar acentos, pontos ou qualquer caractere diferente de letras ou numeros (´~^´.,) etc..
Existe alguma forma de se fazer isso no momento da digitação e não uma validação depois de sair do foco do campo texto?

grato.

Wanderley
[ICQ]
RoneiFrandoloso
Thread.start()

Membro desde: 01/06/2008 17:23:51
Mensagens: 25
Offline

voce pode usar um JFormattedTextField limitando esses tipos de caracteres ou criar um Document e setalo no seu JTextField.

Jesuino Master
GUJ Ranger
[Avatar]

Membro desde: 12/02/2009 08:40:06
Mensagens: 783
Offline

Oi,


O JTextField tem um evento onKeyTyped. Você pode nesse evento pegar o texto digitado, tirar o acento e setar o texto de novo.

É uma solucao possível....

William Antônio Siqueira
Analista de Suporte
Blog e Twitter
Site Pessoal
Projetos? Idéias? Críticas? MP!
Não tome uma opinião como verdade absoluta!
manolimars
JavaChild
[Avatar]

Membro desde: 29/10/2009 13:20:19
Mensagens: 108
Offline



depois no seu TextField é só fazer

"Comece fazendo o que é necessário, depois o que é possível, e de repente você estará fazendo o impossível..."
Java - O Filme (Legendado)
leoramos
GUJ Ranger
[Avatar]

Membro desde: 28/03/2008 12:22:12
Mensagens: 845
Localização: Florianópolis / SC
Offline

Podes usar o MaskFormatter, e indicar quais os dígitos não permitidos (ou permitidos, em outra abordagem).

"Nunca atribua à falta de caráter o que pode ser facilmente explicado pela estupidez."
[Email] [MSN]
amostech
Entusiasta Java

Membro desde: 10/03/2011 13:15:41
Mensagens: 19
Offline

A ideia de criar o PlainDocument parece ser a mais eficaz... na hora de sobrescrever o metodo insertString voce seta quais caracteres voce quer deixar no campo. Tipo assim olha... para aceitar apenas numeros eu faço assim:

alexafe
JavaTeenager
[Avatar]

Membro desde: 03/09/2010 07:51:48
Mensagens: 163
Offline

Coloque esse trecho no Evento KeyTyped do InputTextField


o intervalo de maior que 47 e menor que 58 deixa digitar apenas numeros, e não letras
agora para o seu caso olhe na tabela ascii e use mais algumas condições para deixar do jeito que vc quer

This message was edited 1 time. Last update was at 19/03/2011 10:56:37


Superior em Tecnólogia de Análise e Desenvolvimento de Sistemas Java SE, Java ME e Java EE.
[MSN]
geovanni.
Debugger
[Avatar]

Membro desde: 10/10/2010 20:10:18
Mensagens: 69
Offline

This message was edited 1 time. Last update was at 01/04/2011 22:58:02

[Email] [MSN]
leandrovrb
Debugger
[Avatar]

Membro desde: 08/05/2008 07:17:19
Mensagens: 74
Offline

Voce pode utilizar este evento KeyTyped:
Sendo (k > 58 && k < 126) libera para digitar letras
Sendo (k > 47 && k < 58 ) libera para digitar numeros

This message was edited 4 times. Last update was at 02/08/2011 20:49:00

[MSN]
 
Índice dos Fóruns » Interface Gráfica
Ir para:   
Powered by JForum 2.1.8 © JForum Team