estou com uma duvida muito básica, quero pegar o valor que vem da tela, tipo (txtcampo.getText) e verificar se ele é uma string ou um inteiro. Fiz desta forma, mas acho que 'viajei’um pouco.
bem o txtCache.getText(); vai te retornar uma String
ai se vc quiser saber se ele é um inteiro vc faz um cast
try{Integer.parseInt(txtCache.getText());}catch(Exceptione){//Aqui vc trata a exceção}
seria isso mais o menos que vc quer?
Gobain
Bom, o q vc fez, se nao der um erro por vc tentar dar parse em algo q nao e um inteiro (ex.: abc) vai sempre ser considerado verdadeiro e nunca exibira o JOptionPane, pq vc compara a variavel valor com ela mesma. Vc pode tentar fazer algo como:
intvalor=0;try{valor=Integer.parseInt(txtCache.getText());}catch(Exceptionep){System.out.println("nao e inteiro");}System.out.println("valor do campo de texto: "+valor);
Assim vc pode tratar caso ocorra algum erro, ou pode ter alguma ideia melhor tb pra resolver :D
H
hugov
Se for para fazer um Workaround (uma Gambiarra) te aconselho a fazer isto então.
Da maneira que o padcoe e a melhor forma, mas o correto seria você utilizar Regex.
// Somente NumeroPatternp=Pattern.compile("*\d");// Valida o seu TextoMatcherm=p.matcher("seuTexto");// Verifica se passa no testebooleanb=m.matches();
Mas acredito que de para juntar isso junto com o Swing, em tempo de execução
ou seja, o usuário vá digitando e ele vai validando em tempo real.
Gobain
hugov:
Se for para fazer um Workaround (uma Gambiarra) te aconselho a fazer isto então.
Da maneira que o padcoe e a melhor forma, mas o correto seria você utilizar Regex.
// Somente NumeroPatternp=Pattern.compile("*\d");// Valida o seu TextoMatcherm=p.matcher("seuTexto");// Verifica se passa no testebooleanb=m.matches();
Mas acredito que de para juntar isso junto com o Swing, em tempo de execução
ou seja, o usuário vá digitando e ele vai validando em tempo real.
Verdade, com regex fica bem bacana... nem lembrei dessa possibilidade :?
R
raphaelFree
vlw pessoal pelas formas diferentes de se chegar ao mesmo resultado, gostei do regex mas optei pela forma ‘tradicioanal’. ficou assim: