Restringir un JTextField a solo numeros
como puedo restringir un JTextField a solo el ingreso a numeros enteros, esto con PlainDocument, creo que debe ser algo como
class verificar extends PlainDocument{
private String str;
private int numero;
public void insertString(int arg0, String arg1, AttributeSet arg2) throws NumberFormatException{
for(int i=1; i=str.length(),i++){
int num = Integer.parseInt(str.indexOf(i));
numero = num+numero;
return;
}
super.insertString(arg0, arg1, arg2);
}
}
o algo por el estilo, necesito algo de orientacion, porque no me resulta GRACIAS
class verificar extends PlainDocument{
private String str;
private int numero;
public void insertString(int arg0, String arg1, AttributeSet arg2) throws NumberFormatException{
for(int i=1; i=str.length(),i++){
int num = Integer.parseInt(str.indexOf(i));
numero = num+numero;
return;
}
super.insertString(arg0, arg1, arg2);
}
}
o algo por el estilo, necesito algo de orientacion, porque no me resulta GRACIAS
buenas, mira, yo eso lo hice con un filtro.
Creas una nueva clase que implemente la interfaz keyListener:
public class FocoNoletras implements KeyListener {
Luego redefines el metodo siguiente asi:
public void keyTyped(KeyEvent e) {
res.compruebaTecla(e);
}
//res es una referencia a la clase donde tengas el JTExtField y alli haces el método :
void compruebaTecla (KeyEvent e) {
char tecla = e.getKeyChar();
if (!Character.isDigit(tecla)) {
e.consume();
}
y en el JInit:
jtextfield1.addKeyListener(new FocoNoletras(this));
con eso ya te tiene que funcionar.
Creas una nueva clase que implemente la interfaz keyListener:
public class FocoNoletras implements KeyListener {
Luego redefines el metodo siguiente asi:
public void keyTyped(KeyEvent e) {
res.compruebaTecla(e);
}
//res es una referencia a la clase donde tengas el JTExtField y alli haces el método :
void compruebaTecla (KeyEvent e) {
char tecla = e.getKeyChar();
if (!Character.isDigit(tecla)) {
e.consume();
}
y en el JInit:
jtextfield1.addKeyListener(new FocoNoletras(this));
con eso ya te tiene que funcionar.
MUCHAS GRACIAS A TODOS POR SU AYUDA, ESTO ME HA SERVIDO BASTANTE, GRACIAS
que pasa cuando sale este error
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
Hola:
Es mejor usar el document. Si lo haces con keylistener, dejarán de funcionarte algunas teclas (no recuerdo si el backspace o el supr, pero una e ellas deja de funcionar) y tendrÃas, además de comprobar si es número, si es una de ellas y dejarla pasar.
En cuando al Document, no compruebes letra a letra y todo eso. Haz algo como esto http://www.chuidiang.com/java/ejemplos/JTextField/limita_caracteres.html y cuando tengas el texto completo, en vez de comprobar la longitud, como se hace en el ejemplo, comprueba si funciona el paraInt. Si lo hace, llama a super.insert() igual que en el ejemplo.
Se bueno
Es mejor usar el document. Si lo haces con keylistener, dejarán de funcionarte algunas teclas (no recuerdo si el backspace o el supr, pero una e ellas deja de funcionar) y tendrÃas, además de comprobar si es número, si es una de ellas y dejarla pasar.
En cuando al Document, no compruebes letra a letra y todo eso. Haz algo como esto http://www.chuidiang.com/java/ejemplos/JTextField/limita_caracteres.html y cuando tengas el texto completo, en vez de comprobar la longitud, como se hace en el ejemplo, comprueba si funciona el paraInt. Si lo hace, llama a super.insert() igual que en el ejemplo.
Se bueno