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.
int valor = Integer.parseInt(txtCache.getText());
if(valor != valor){
JOptionPane.showMessageDialog(null, " Informe um numero Inteiro, ex: '5000'","Atenção"
,JOptionPane.WARNING_MESSAGE);
txtCache.setFocus();
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:
[code]int valor = 0;
try {
valor = Integer.parseInt(txtCache.getText());
} catch(Exception ep) {
System.out.println(“nao e inteiro”);
}
System.out.println("valor do campo de texto: " + valor);[/code]
Assim vc pode tratar caso ocorra algum erro, ou pode ter alguma ideia melhor tb pra resolver
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.
[quote=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.
[code]
// Somente Numero
Pattern p = Pattern.compile("*\d");
// Valida o seu Texto
Matcher m = p.matcher(“seuTexto”);
// Verifica se passa no teste
boolean b = m.matches();[/code]
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.[/quote]
Verdade, com regex fica bem bacana… nem lembrei dessa possibilidade :?