Campo que aceite apenas numero

Pessoal me deem uma força
Como eu faço pra entrar apenas com numero, e quando entrar com letras me retorno uma mensagem
Ex:
tenho que entrar com endereço e numero, e no campo numero não aceita letras

Exemplo:

https://sites.google.com/site/lucasportela/home/java/separarnumerosdeumastring

Iae lucasportela blz,

Da uma olhada na classe: MaskFormatter

abc

Dei uma olhada de 5 minutos, mas com os métodos de lá não achei uma lógica eficiente de validação… manda um exemplo de uso pra eu entender melhor o funcionamento

Olá amigo!

Eu uso assim

tem que ser utilizado na criação do objeto

no netbeans clique com o botão direito o jformattedField e vá em personalizar código

jftTxFinanceira = new javax.swing.JFormattedTextField(setMascara("************","0123456789."));

Um grande abraço

Sua aplicação é Swing? Se for, use um MaskFormatter ou um IntegerDocument:

Se quiser validar o campo assim que o usuário sai do campo, use um InputVerifier:
http://download.oracle.com/javase/7/docs/api/javax/swing/InputVerifier.html

Se não for Swing, aí você pode usar JavaScript para validar o campo.

Agora, essa dúvida não existiria se vc tivesse aberto seu tópico no fórum certo (Interface Gráfica para Swing, Desenvolvimento Web para web).

Da uma olhada em como se usa o “MaskFormatter” :wink:

faicoxim ,

Se for uma aplicação swing , no caso do JTextField use um modelo de documento , segue abaixo:



import javax.swing.text.PlainDocument;
import javax.swing.text.BadLocationException;
import javax.swing.text.AttributeSet;


public class ModeloDocumento extends PlainDocument {

	int limitestr;
	
	public ModeloDocumento(int maxlen) {
		super();
		
		limitestr = maxlen-1;
		
		// TODO Auto-generated constructor stub
	}
	
	public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
		 
		Character ch = new Character('a');
		
		for(int i = 0;i < str.length();i++) {
			
			if( ! ch.isDigit( str.charAt(i) ) ) { // Aqui verifica , se for diferente de numero não insira o caractere no jtextfield
				return;
			}
		
		//	if( ch.getType( str.charAt(i) ) == Character.OTHER_NUMBER ) {
		//		return;
		//	}
		}
		
		if( offs > limitestr ) {
			return;
		}else {
			super.insertString(offs, str, a); 
		}
	}

}

Na hora de instanciar seu JTextField use:

	JTextField seuCampo = new JTextField(new ModeloDocumento(6),"",6); // onde 6 é o numero de caracteres numéricos que serão aceitos.

Veja esse artigo do GUJ espero que te ajude: http://www.guj.com.br/articles/29

Qualquer duvida posta ai.

:thumbup:

[quote=faicoxim]Pessoal me deem uma força
Como eu faço pra entrar apenas com numero, e quando entrar com letras me retorno uma mensagem
Ex:
tenho que entrar com endereço e numero, e no campo numero não aceita letras[/quote]
Só por dúvida. Existem raras situações onde número pode ser letra (como é comum ver, s/n para sem numeração). Essas situações não seriam contempladas?

De qq forma, creio que os posts do ViniGodoy devem ajudá-lo.

PS: Não use o InputVerifier para impedir que o campo perca o foco enquanto o mesmo não for válido. No teclado funciona blz. Mas não posso dizer o mesmo usando o mouse…