Restringir un JTextField a solo numeros

INDUSTRIAL
11 de Junio del 2006
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

aiduka
11 de Junio del 2006
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.

aiduka
11 de Junio del 2006
perdon te puse filtro y es foco jej

INDUSTRIAL
11 de Junio del 2006
MUCHAS GRACIAS A TODOS POR SU AYUDA, ESTO ME HA SERVIDO BASTANTE, GRACIAS

INDUSTRIAL
11 de Junio del 2006
que pasa cuando sale este error

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

chuidiang
11 de Junio del 2006
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