Validar un textField
Hola estoy desarrollando una aplicacion muy sencilla y necesito saber como hago para validar un textfield para que solo me reciba letras o numeros.
Espero que alguien me pueda colaborar. gracias
Espero que alguien me pueda colaborar. gracias
Hola disculpa pero recien entro a esta pagina y esta muy interesante. respecto a tu pregunta lo que tienes que hacer en implementar un PlainDocument. Aqui te envio el codigo para que solo acepte numeros.
import java.awt.Toolkit;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
public class Enteros extends PlainDocument {
private int limit;
/**
*
* @param limit
*/
public Enteros(int limit) {
super();
setLimit(limit);
}
/**
*
* @param limite
*/
public final void setLimit(int limite){
this.limit=limite;
}
public void insertString(int offset,String string, AttributeSet attributes)throws BadLocationException
{
if(offset<limit){
if (string == null) {
return;
}
else {
String newValue;
int length = getLength();
if (length == 0)
{
newValue = string;
}
else {
String currentContent = getText(0, length);
StringBuffer currentBuffer = new StringBuffer(currentContent);
currentBuffer.insert(offset, string);
newValue = currentBuffer.toString();
}
try {
Integer.parseInt(newValue);
super.insertString(offset, string,attributes);
} catch (NumberFormatException exception)
{
Toolkit.getDefaultToolkit().beep();
}
}
}
else Toolkit.getDefaultToolkit().beep();
}
}
donde limit es la cantidad de caracteres que quieres que ingrese.
y se agrega a un jtexfield de esta manera.
jtextfield1.setDocument(new Enteros(5));
import java.awt.Toolkit;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
public class Enteros extends PlainDocument {
private int limit;
/**
*
* @param limit
*/
public Enteros(int limit) {
super();
setLimit(limit);
}
/**
*
* @param limite
*/
public final void setLimit(int limite){
this.limit=limite;
}
public void insertString(int offset,String string, AttributeSet attributes)throws BadLocationException
{
if(offset<limit){
if (string == null) {
return;
}
else {
String newValue;
int length = getLength();
if (length == 0)
{
newValue = string;
}
else {
String currentContent = getText(0, length);
StringBuffer currentBuffer = new StringBuffer(currentContent);
currentBuffer.insert(offset, string);
newValue = currentBuffer.toString();
}
try {
Integer.parseInt(newValue);
super.insertString(offset, string,attributes);
} catch (NumberFormatException exception)
{
Toolkit.getDefaultToolkit().beep();
}
}
}
else Toolkit.getDefaultToolkit().beep();
}
}
donde limit es la cantidad de caracteres que quieres que ingrese.
y se agrega a un jtexfield de esta manera.
jtextfield1.setDocument(new Enteros(5));
