我希望验证jTextField里面的输入结果。如果不为数字就重新输入。。用什么方法验证

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【yuyistar】截止到2008-06-28 21:51:41的历史汇总数据(不包括此帖):
    发帖数:59                 发帖分:1330               
    结贴数:54                 结贴分:1180               
    未结数:5                  未结分:150                
    结贴率:91.53 %            结分率:88.72 %            
    值得尊敬
      

  2.   

    用try,把jTextField里面的输入结果转换成Integer类型,有异常抛出就不是数字。
      

  3.   

    String s=JTextField对象.getText();
    try{
        Integer.valueOf(s);
    }catch(Exception e){
        System.out.prtintln("重新输入");}
      

  4.   

    comm = JTextField().getText();然后用正则:"[0-9]+".matches(comm);或"\\d+".matches(comm);
      

  5.   

    我不会那个但我这样把它写到if里不行呀
    if("[0-9]+".matches(numberOneSql)){
                System.out.println("为数字");
            }
    我想判断后。在if里面执行想要的操作。要怎么写
      

  6.   

    初学者还是用放在try{}里判断是否发生类型转化好一点吧。
    正则不容易上手
      

  7.   

    楼主试试这个package Test;import java.awt.*;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.FocusAdapter;
    import java.awt.event.FocusEvent;import javax.swing.*;
    import javax.swing.border.EmptyBorder;
    public class RregulaExpression {
    private JFrame jf = new JFrame();
    private JPanel p1 = new JPanel();
    private JTextField text = new JTextField();
    private JButton bok = new JButton();
    public RregulaExpression(){
    jInit();
    Box vbox = new Box(BoxLayout.X_AXIS);
    vbox.add(text);
    vbox.add(bok);
    jf.add(vbox,"Center");
    jf.getRootPane().setBorder(new EmptyBorder(20,20, 10, 10));
    jf.setSize(200,100);
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jf.setVisible(true);
    }
    public void jInit(){
    bok.setText("测试");

    text.setPreferredSize(new Dimension(80,25));
    text.setMinimumSize(new Dimension(80,25));
    text.setMaximumSize(new Dimension(80,25));

    bok.setPreferredSize(new Dimension(60,25));
    bok.setMinimumSize(new Dimension(60,25));
    bok.setMaximumSize(new Dimension(60,25));

    bok.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e) {
    String s = text.getText().trim();
    if (!s.matches("([0-9]?)*")) {
    JOptionPane.showMessageDialog(jf, "請輸入數字字符!");
    }
    }
    });

    text.addFocusListener(new FocusAdapter()
    {
    //文本框获得焦点,选中文本
    public void focusGained(FocusEvent e)
    {
    if (e.getSource() != null && e.getSource() instanceof JTextField)
    {
    if (((JTextField) e.getSource()).isEditable())
    {
    ((JTextField) e.getSource()).setText(((JTextField) e.getSource()).getText());
    ((JTextField) e.getSource()).selectAll();
    }
    }
        }
    //文本框失去焦点,自动在"."前面填零,例如".1"变成"0.1"
    public void focusLost(FocusEvent e)
    {
    if (e.getSource() != null && e.getSource() instanceof JTextField)
    {
    if (!(((JTextField) e.getSource()).getText()).matches("([0-9]?)*")) {
    JOptionPane.showMessageDialog(jf, "請輸入數字字符!");
    }
    }
        }
    });
    }
    public static void main(String [] args){
    new RregulaExpression();
    }
    }
      

  8.   

    可以这样做:String strTxt = txtAge.getText().trim();
    if(strTxt==null||strTxt.equals("")){
     JOptionPane.showMessageDialog(null,"年龄不能为空");
     return;
    }
    for(int i=0;i<strTxt.length;i++){
     if(strTxt.charAt(i)<'0'||strTxt.charAt(i)>'9'){
       JOptionPane.showMessageDialog(null,"年龄必须为数字,请重新输入");
       return;
     }
    }
    如果是Java入门,希望对你有帮助!也可以使用楼上的正则表达式验证.
      

  9.   

    用正则不错另外,你可以写一个方法,传入一个String的参数
    判断里面的每一个字符
    public boolean IsNumeric(String s){
    for(int i=0;i<s.length();i++)
    {
    if(s.charAt(i)>'9'||s.charAt(i)<'0')
    {
    return false;
    }
    }
    return true;
    }