Problem consume()

Hallo, ich hab ein kleines Problem, ich hab folgendes Programm in BlueJ geschrieben:

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class eingabe extends Dialog implements WindowListener, KeyListener
{

/**
* Konstruktor für Objekte der Klasse ein
*/
public eingabe(Frame frm)
{

super(frm,„test“, true);
addWindowListener(this);
setLayout(new GridLayout(0,1));

Panel Eingabe = new Panel();
TextField eing = new TextField(7);
eing.addKeyListener(this);
Eingabe.add(eing);

add(Eingabe);
}

public void keyPressed(KeyEvent e)
{
char key = e.getKeyChar();
if(!Character.isDigit(key))
{
e.consume();
}
}

public void keyReleased(KeyEvent e){}
public void keyTyped(KeyEvent e){}

public void windowActivated(WindowEvent e){}
public void windowClosed(WindowEvent e){}
public void windowDeactivated(WindowEvent e){}
public void windowDeiconified(WindowEvent e){}
public void windowIconified(WindowEvent e){}
public void windowOpened(WindowEvent e){}

public void windowClosing(WindowEvent e)
{
System.exit(0);
}

}

Wenn ich das TextField verwende funktioniert die Methode „e.consume“. Wenn ich aber das ganze auf Swing umschreiben möchte und dann JTextField verwende, funktioniert sie nicht mehr. Eigentlich soll man in dem Textfeld nur Zahlen eingeben können, bei javax.swing lässt e.consume() dann aber alles durch, auch Buchtstaben. Kann mir jemand von euch helfen, wie ich trotzdem die nichtZahlen herausfiltern kann, sodass sie nicht im JTextField erscheinen?
Über eine Antwort würde ich mich sehr freuen
Manfred

Hallo
durch, auch Buchtstaben. Kann mir jemand von euch helfen, wie
ich trotzdem die nichtZahlen herausfiltern kann, sodass sie
nicht im JTextField erscheinen?

Pack den Teil in keyTyped() rein.

 public void keyTyped(KeyEvent e) {
 char key = e.getKeyChar();
 if (!Character.isDigit(key)) {
 e.consume();
 }
 }

Gruss, Patrick
http://java.sun.com/docs/codeconv/

Hallo Patrick,
vielen Dank für den Tipp, jetzt funktionierts!
Viele Grüße
Manfred