Duvida sobre campos que só aceitam valores inteiros

11 respostas
E

Boa noite Galera

Como faço para validar, e dar uma mensagem se existir valores string em um campo Intefer, assim que eu clicar no botao cadastrar,

[b]Aguardo resposta, muito obrigado.

11 Respostas

joede.fadel

Desktop ou web?

Se for web você pode validar com javaScript e se for desktop faça uma validação com try catch que pode resolver o seu problema.

se não for isso especifique melhor o que está querendo.

E

é desktop

como poderia fazer para validar com try e catch, pra não aceitar em um campo Integer, os valores em String.

Desde já agradeço;

WendersonLP

InputMismatchException deve servir ou caso você esteja utilizando como entrada de dados a classe JOptionPane utilize a
execption NumberFormatException.

E

ok muito obrigado, wenderson vc tem alguma parte em algum codigo seu, que vc ja aplicou isso, se vc poder me mostrar eu agradeço.

ViniGodoy

Melhor ainda é fazer com que seu JTextField só aceite inteiros. Aí não terá como inserir caracteres:
http://www.guj.com.br/posts/list/107425.java

Gerson_da_S_Lima

Você também pode utilizar expressões regulares.

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Teste {

	public boolean validaInteiro(String value) {
		
		return Pattern.matches("[0-9]+", value);
	}

	public static void main(String[] args) {
		
		Teste t = new Teste();
		
		if (t.validaInteiro("15")) {
			System.out.println("É inteiro");
		} else {
			System.out.println("Não é inteiro");
		}
	}
}
ViniGodoy

Se você vai fazer um for de caractere em caractere, para que usar expressões regulares?
Nesse caso, você tem opções melhores como testar com Character.isDigit.

Ou use regex para valer:

public boolean validaInteiro(String value) { return pattern.matches("[0-9]+", value); }

Gerson_da_S_Lima

Valeu VIni, é que eu não sabia usar direito o Regex, por isso eu disse que o código tá meio ruinzinho.

WendersonLP

Segue um exemplo simples.

Então aqui vou criar uma ação onde é pedido que o usuário digite um número qualquer, caso o
usuário não tenha digitado um número é novamente feita a pergunta para que ele digite um número,
a ação somente é ecerrada quando o usuário digitar um número e não uma String.

public static void main(String[] args) {

         boolean status = true;
        int number = -1;

        while (status) { // enquanto o flag for true a ação continua
            try {
                number = Integer.parseInt(JOptionPane.showInputDialog("Type a number: "));

                status = false; // caso a linha de comando chegue até aqui significa que o usuário digitou
                                     // um número, sendo assim a ação é terminada
            }
            catch (NumberFormatException exception) {
                // caso tenha sido digitado uma String a exceção é capturada
                JOptionPane.showMessageDialog(null, "Error: Is to type a number!"); 
            }
        }
}
aldineireis

se você estiver usando NetBeans fica mais facil usar o campo com mascara JFormattedTextField nas propriedades dele configura a mascara com o caracter # ele aceita só numeros se você quiser um campo com 5 numeros por exemplo define #####

E

Gostaria de agradecer a todos que postarmam me ajudando, muito obrigado.

Criado 16 de novembro de 2009
Ultima resposta 18 de nov. de 2009
Respostas 11
Participantes 6