Validar TextField (se tem número e letra)

Como eu faço pra validar se um textfield tem números ou se contém letras ou os dois?

Você pode usar Expressões regulares. Pesquise pela classe Regex, da biblioteca java.util.

e que tal “só” permitir entrada de letras / numeros ?

Crie uma sequencia de chars válidos para entrada :wink:
Pesquisa por isso que aqui no forum ja vi muitos tópicos sobre esse assunto

if(Pattern.compile("[\\d\\D]").matcher(getSeuTextField()).matches()) { // Achou números ou letras somente no seu texto, faça o que quiser daqui pra baixo. }

[quote=pgioseffi]if(Pattern.compile("[\\d\\D]").matcher(getSeuTextField()).matches()) { // Achou números ou letras somente no seu texto, faça o que quiser daqui pra baixo. }[/quote]

Bom Dia
Esse exemplo não funciona para “casar” somente letras e números, pois o \D aceita todos os caracteres diferentes de números(assim símbolos e espaços também são aceitos).
O ideal é utilizar uma lista para especificar exatamente o que ser quer. Para letras e números eu faria: “[A-Za-z0-9]+”. Poderia ser “(\w\d)+” , mas a primeira forma fica mais clara até mesmo para quem não está familiarizado com expressões regulares.

[A-Za-z0-9]+ “Casa palavras que contenham apenas letras e números sem espaços, caso deseje com espaços deve inserir na lista \s”

if(jTextField.getText().matches("[A-Za-z0-9]+")){
	System.out.println("Casou:" + jTextField.getText());
}
else{
	System.out.println("Texto Inválido!");
}

Danilo,

Você foi perfeito em sua colocação. Realmente o “\D” pega além do necessário.