void jTextField6_keyPressed(KeyEvent e) 
{
   //在这儿屏蔽掉非数字键
}

解决方案 »

  1.   

    void jTextField6_keyPressed(KeyEvent e) {
       if (( e.getKeyChar () < e.VK_0 ) || ( e.getKeyChar ()>e.VK_9 ))
       {          
        e.consume();
       }
    }
    不过这样好象不太妥当,因为屏蔽了0-9之外的所有键,比如Tab等.
    最好通过PlainDocument类来实现
      

  2.   

    import java.awt.*;
    import javax.swing.*;
    import javax.swing.text.*;
    public class TextFieldTest extends JFrame {
        JTextField tf = new JTextField();    public TextFieldTest() {
            try {
                jbInit();
            }
            catch(Exception e) {
                e.printStackTrace();
            }
        }
        public static void main(String[] args) {
            TextFieldTest textFieldTest = new TextFieldTest();
            textFieldTest.setSize(800,600);
            textFieldTest.setVisible(true);
        }
        private void jbInit() throws Exception {
            tf.setBounds(new Rectangle(108, 114, 104, 20));
            this.getContentPane().setLayout(null);
            this.getContentPane().add(tf, null);
            tf.setDocument(new NumberDocument());
        }}
     class NumberDocument extends PlainDocument {
         public void insertString(int offset,String str,AttributeSet a){
                try{
                    int nTxt = Integer.parseInt(str);
                    System.out.println(nTxt);
                    super.insertString(offset,str,a);
                }catch(Exception e){
                    return;
                }
            }
       }
    试试这个,应该没问题了
      

  3.   

    这个已经测试过了。import java.awt.*;
    import javax.swing.*;/**
     * <p>Title: </p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2002</p>
     * <p>Company: </p>
     * @author unascribed
     * @version 1.0
     */public class Frame2 extends JFrame
    {
    BorderLayout borderLayout1 = new BorderLayout();
    NumberTextField jTextField1 = new NumberTextField(10,10);; public Frame2()
    {
    try
    {
    jbInit();
    }
    catch(Exception e)
    {
    e.printStackTrace();
    }
    }
    public static void main(String[] args)
    {
    Frame2 frame2 = new Frame2();
    }
    private void jbInit() throws Exception
    {
    jTextField1.setText("jTextField1");
    this.getContentPane().setLayout(borderLayout1);
    this.getContentPane().add(jTextField1, BorderLayout.NORTH); this.setSize(new Dimension(400, 300));
    this.setEnabled(true);
    this.show();
    this.validate();
    }
    }import javax.swing.*;
    import javax.swing.text.*;import java.awt.Toolkit;
    import java.text.NumberFormat;
    import java.text.ParseException;
    import java.util.Locale;
    /**
     * <p>Title: </p>
     * <p>Description: </p>
     * <p>Copyright: Copyright (c) 2002</p>
     * <p>Company: </p>
     * @author unascribed
     * @version 1.0
     */public class NumberTextField extends JTextField
    {
    private Toolkit toolkit;
    private NumberFormat integerFormatter; public NumberTextField(int value, int columns)
    {
    super(columns);
    toolkit = Toolkit.getDefaultToolkit();
    integerFormatter = NumberFormat.getNumberInstance(Locale.getDefault());
    integerFormatter.setParseIntegerOnly(true);
    setValue(value);
    } public int getValue()
    {
    int retVal = 0;
    try
    {
    retVal = integerFormatter.parse(getText()).intValue();
    }
    catch (ParseException e)
    {
    // This should never happen because insertString allows
    // only properly formatted data to get in the field.
    toolkit.beep();
    } return retVal;
    } public void setValue(int value)
    {
    setText(integerFormatter.format(value));
    } protected Document createDefaultModel()
    {
    return new WholeNumberDocument();
    } protected class WholeNumberDocument extends PlainDocument
    {
    public void insertString(int offs , String str , AttributeSet a)
    throws BadLocationException
    {
    char[] source = str.toCharArray();
    char[] result = new char[source.length];
    int j = 0;
    for (int i = 0; i < result.length; i++)
    {
    if (Character.isDigit(source[i]))
    result[j++] = source[i];
    else
    {
    toolkit.beep();
    System.err.println("insertString: " + source[i]);
    }
    }
    super.insertString(offs, new String(result, 0, j), a);
    }
    }
    }