Ola Galera, Sou novo no java e tenho uma duvida,fazer um tratamento, para que o JoptionPane, não aceite numeros so Letras, ao contrario consegui fazer , para nao aceitar letras segue o codigo:
Não entendi sua indagação, executei aqui rodou beleza…
rogeriovaladaoti
Desculpe acho que nao expliquei direito, este codigo ai impede que eu digite letras , no Joptionpane, ou seja so posso digitar numeros,
quero fazer agora o contrario , digitar apenas letras e ele nao aceitar numeros , Ex: como num cadastro de clientes , nao posso permitir o usuario digitar numeros no campo nome, queria saber como trato isto, e Obrigado pela Atenção…
F
fshima
Use regex.
Exemplo:
boolean soTemLetra = nota1.matches("[a-zA-Z\s]+");
if (soTemLetra)
System.out.print("Só tem letra!!!");
rogeriovaladaoti
Nao consegui, poderiam postar um codigo completo para mim como por exemplo , tenho uma var nome , e quero que so digitem letras ,
no joptionpane, nao aceitar numeros , o codigo que recebi nao consegui implementar . obrigado…
Patrick_Bahia
tipo, o que vc poderia fazer é algo assim:
Stringtexto=JOptionPane.showInputDialog(null,"Digite uma letra");try{intaux=Integer.parseInt(texto);}catch(Exceptione){System.out.println(""Digitesomentenúmeros);}
outra solução:
[code]
String texto = JOptionPane.showInputDialog(null,"Digite uma letra");
char[] numeros = new char[]{'0','1','2','3','4','5','6','7','8','9'}
for(int i = 0;i<numeros.length;i++) {
for(int j = 0;j<texto.length();j++) {
if(texto.charAt(j) == numeros[i])
System.out.println("Digite somente números");
}
}
>
rogeriovaladaoti
Galera Funcionou Blz desta forma, porem se digito um digito ele roda a menssagem 1 vez normal, mais se digito 2 ou tres assim em diante ele roda a menssagem equivalente a quantos digitos eu colocar no jOptionPane.Ex: se eu colocar 55 dois digitos ele vai dar a menssagem "Digite somente Letras", 2 vezes e assim em diante , gostaria que independente do numero de digitos ele me desse a menssagem apenas 1 vez.
packageTray_Catch;importjavax.swing.JOptionPane;publicclassTry_Catch_String{publicstaticvoidmain(String[]args){inti,j;char[]numeros=newchar[]{'0','1','2','3','4','5','6','7','8','9'};Stringtexto;texto=JOptionPane.showInputDialog(null,"Digite uma letra");for(i=0;i<numeros.length;i++){for(j=0;j<texto.length();j++){{if(texto.charAt(j)==numeros[i])JOptionPane.showMessageDialog(null,"Digite somente Letras");}}}}}
[/list]
adriano_si
rogeriovaladaoti:
Galera Funcionou Blz desta forma, porem se digito um digito ele roda a menssagem 1 vez normal, mais se digito 2 ou tres assim em diante ele roda a menssagem equivalente a quantos digitos eu colocar no jOptionPane.Ex: se eu colocar 55 dois digitos ele vai dar a menssagem "Digite somente Letras", 2 vezes e assim em diante , gostaria que independente do numero de digitos ele me desse a menssagem apenas 1 vez.
packageTray_Catch;importjavax.swing.JOptionPane;publicclassTry_Catch_String{publicstaticvoidmain(String[]args){inti,j;char[]numeros=newchar[]{'0','1','2','3','4','5','6','7','8','9'};Stringtexto;texto=JOptionPane.showInputDialog(null,"Digite uma letra");for(i=0;i<numeros.length;i++){for(j=0;j<texto.length();j++){{if(texto.charAt(j)==numeros[i])JOptionPane.showMessageDialog(null,"Digite somente Letras");}}}}}
[/list]
Cara... se seu JOptionPane está dentro do For, não tem jeito, toda vez que ele passar nessa sequencia ele vai Exibir o JOptionPane...
Dica, você precisa retirar do Loop FOR e ter um jeito de marcar se há Somentes Letras ou não... Algo do tipo (SIM ou NÃO) ou (VERDADEIRO ou FALSE)
Entendeu ??
[EDIT] - Outra coisa, só pra eu não ficar com a consciência pesada, começa a dar uma pesquisada sobre identação de código e padrão de Nomenclatura Java... Esse nome de classe tá péssimo cara e a identação do teu código as vezes prejudica a leitura do mesmo...
Abs []
rogeriovaladaoti
Amigo, Valeu muito pelas Dicas, vou ficar atento com identação de código e padrão de Nomenclatura Java…
Abs []
adriano_si
Conseguiste implementar as mudanças ??? Posta aí como ficou…
Patrick_Bahia
Galera, foi erro meu
tipo
coloca um
return
depois do JOptionPane
rogeriovaladaoti
Galera um amigo de outro forum me passou este codigo e funcionou blz, mais não entendi nada, do codigo
packageTray_Catch;importjava.util.regex.Matcher;importjava.util.regex.Pattern;importjavax.swing.JOptionPane;publicclassTratamento_Excessoes_String{publicstaticvoidmain(String[]args){Matchernome;Patternp=Pattern.compile("\d+");nome=p.matcher(JOptionPane.showInputDialog("Digite Seu Nome.: "));if(nome.find()){JOptionPane.showMessageDialog(null,"Numeros Não São Permitidos !");}}}