import java.awt.*; import javax.swing.*; import javax.swing.text.*; public class NumericField { public NumericField () { JFrame frame = new JFrame("Event Test"); Container content = frame.getContentPane(); content.setLayout(new FlowLayout()); frame.setSize(300,300); JTextField tf = new JTextField(new NumericDocument(), "", 10); content.add(tf); frame.setVisible(true); } private static class NumericDocument extends PlainDocument { public void insertString(int offs, String str, AttributeSet a) throws BadLocationException { if (str == null) return; StringBuffer digits = new StringBuffer(); for (int i = 0; i < str.length(); i++) { if (Character.isDigit(str.charAt(i))) digits.append(str.charAt(i)); } super.insertString(offs, digits.toString(), a); } } public static void main(String[] args) { new NumericField(); } }