textfield.setDocument(new IntegerDocument());class IntegerDocument extends PlainDocument {
public void insertString(int offset, String s, 
AttributeSet attributeSet) throws BadLocationException {
try {
Integer.parseInt(s);
}
catch(Exception ex) {
Toolkit.getDefaultToolkit().beep();
return;  
}
super.insertString(offset, s, attributeSet);
}
}

解决方案 »

  1.   

    在舰艇里做判断,每输入一个字符就判断一次,利用ASCII
      

  2.   

    JFormattedTextField tft1 = new JFormattedTextField(NumberFormat.getIntegerInstance());
    tft1.setValue(new Integer(123));
      

  3.   

    我以前也是在键盘事件里判断,但是在Document这个类了
    有关于这方面的
      

  4.   

    extends JTextDocument类重载 insertString函数,如果是非数字就return就行啦再TextField.setDocument(new 你的新Document类)
      

  5.   

    编写自己的Document也不是一件容易的事啊!
      

  6.   

    JFormattedTextField extends JTextField adding support for formatting arbitrary values, as well as retrieving a particular object once the user has edited the text. The following illustrates configuring a JFormattedTextField to edit dates:    JFormattedTextField ftf = new JFormattedTextField();
       ftf.setValue(new Date());
     Once a JFormattedTextField has been created, you can listen for editing changes by way of adding a PropertyChangeListener and listening for PropertyChangeEvents with the property name value. 
      

  7.   

    我这里有段程序供你参考,不管对与不对!!  楼主给加点劳动分,import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;public class DivideByZeroTest extends JFrame implements ActionListener
    {
    private JTextField inputField1,inputField2,outputField;
    private int number1,number2,result;

    public DivideByZeroTest()
    {
    super("Demonstrating Exceptions");

    Container container=getContentPane();
    container.setLayout(new GridLayout(3,2));

    container.add(new JLabel("Enter numerator",SwingConstants.RIGHT));
    inputField1=new JTextField();
    container.add(inputField1);

    container.add(new JLabel("Enter denominator and press Enter",SwingConstants.RIGHT));
    inputField2=new JTextField();
    container.add(inputField2);
    inputField2.addActionListener(this);

    container.add(new JLabel("Result",SwingConstants.RIGHT));
    outputField=new JTextField();
    container.add(outputField);

    this.setSize(425,100);
    this.setVisible(true);

    }
    public void actionPerformed(ActionEvent event)
    {
    outputField.setText("");
    try{
    number1=Integer.parseInt(inputField1.getText());
    number2=Integer.parseInt(inputField2.getText());

    result=quotient(number1,number2);
    outputField.setText(String.valueOf(result));
    }
    //用于捕捉从字符串到数字的非法转换
    catch(NumberFormatException n){
    JOptionPane.showMessageDialog(this,
    "You must enter two Integers","Invalid number Format",
    JOptionPane.ERROR_MESSAGE);
    }
    catch(ArithmeticException e){
    JOptionPane.showMessageDialog(this,
    e.toString()+"\n请输入大于0的数!","Arithmetic Exception",
    JOptionPane.ERROR_MESSAGE);
    }
    }
    public int quotient(int numberator,int denominator)
    throws ArithmeticException
    {
    return numberator/denominator;
    }
    public static void main(String args[])
    {
    DivideByZeroTest d=new DivideByZeroTest();
    d.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    }
      

  8.   

    很简单啊,
    先得到一个string,然后依次遍历他的每个元素,如果用户输入的有字母或者其他,那么就返回pop提示窗口》》》》》》》
    for(int i=0;i<string.length();i++)
    string.charAt(i)=="a,b,c...."等等,则pop