例如,在一个TextField里输入数据,怎么验证输入的是否是yyyy-mm-dd格式?

解决方案 »

  1.   

    直接判断的那种
    if (jTextField.getText().trim().equals(""))
                  {
                    JOptionPane.showMessageDialog(null,"请输入日期格式“yyyy-mm-dd”!","错误提示",JOptionPane.PLAIN_MESSAGE);
                     return;  
                  }
    if里面怎么改(if(TextField.getText().trim().equals("")) || (这里怎么写?)  )
      

  2.   

    TextField.matches("[\\d]{4}[-][\\d]{2}[-][\\d]{2}")
    如果不匹配返回false
      

  3.   

    不行啊
    说class类不可用
    我前面加了import.java.math.*
    也不行
      

  4.   

    不可能吧 
    java.lang.String 里的 matches方法 你查下API
      

  5.   

    import java.lang.String.*;
    再试试
      

  6.   

    是有那个类包
    但我一运行就说找不到符号
    TextField.matches("[\\d]{4}[-][\\d]{2}[-][\\d]{2}")
    就这一句报错
      

  7.   

    System.out.println(TextField.matches("[\\d]{4}[-][\\d]{2}[-][\\d]{2}"));
    看看输出什么
      

  8.   

    java.util.regex  包里的方法加上上面的正则基本就ok了!
      

  9.   

    (TextField.getText().trim().matches("\\d{4}-\\d{2}-\\d{2}"))
      

  10.   

    按照楼主的意思应该是
    TextField.getText().trim().matches("[\\d]{4}[-][\\d]{2}[-][\\d]{2}")
      

  11.   

    不行啊,还是说方法matches有错误
      

  12.   

    另说一下 
    我是用netbeans做的
      

  13.   

    import java.lang.String.*;加了么?
      

  14.   

    +了啊 
    就是说matches方法有错误
      

  15.   

    package fwzl;      
    import java.awt.*;
    import java.sql.*;
    import javax.swing.*;
    import java.lang.Integer;
    import java.util.*;
    import javax.swing.table.*;
    import java.awt.event.ItemEvent;
    import java.lang.*;
    import java.lang.String.*;
    /**
     *
     * @author  Administrator
     */
    public class sflr extends javax.swing.JFrame {
         String url="jdbc:odbc:fwzlgl";
         String DBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
         Connection con=null;
         Statement stmt=null;
         PreparedStatement pstmt=null;
         ResultSet rs=null;
         ResultSet rs1=null;
         ResultSet rs2=null;
         ResultSetMetaData metaData; 
        /** Creates new form sflr */
        public sflr() {
            initComponents();
            try
            {
                Class.forName(DBDriver);
                con=DriverManager.getConnection(url,"","");   
            }
            catch(Exception e)
            {
                e.printStackTrace();
            } 
        }
        
        private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO 将在此处添加您的处理代码:
            String sfdm=jTextField7.getText().trim();
            String htbh=jTextField1.getText().trim();
            String fwdm=jTextField2.getText().trim();
            String sfrq=jTextField3.getText().trim();
            String sfxm=jTextField4.getText().trim();
            String sfje=jTextField5.getText().trim();
            String skr=jTextField6.getText().trim();
            String bz=jTextArea1.getText().trim();
             if (jTextField7.getText().trim().equals(""))
                  {
                    JOptionPane.showMessageDialog(null,"收费代码不可为空!","错误提示",JOptionPane.PLAIN_MESSAGE);
                     return;  
                  }
             if (jTextField1.getText().trim().equals(""))
                  {
                    JOptionPane.showMessageDialog(null,"合同编号不可为空!","错误提示",JOptionPane.PLAIN_MESSAGE);
                     return;  
                  }
            if (jTextField2.getText().trim().equals(""))
                  {
                    JOptionPane.showMessageDialog(null,"房屋代码不可为空!","错误提示",JOptionPane.PLAIN_MESSAGE);
                     return;  
                  }
            if (jTextField3.getText().trim().equals("") || TextField.getText().trim().matches("[\\d]{4}[-][\\d]{2}[-][\\d]{2}"))
                  {
                    JOptionPane.showMessageDialog(null,"收费日期不可为空!","错误提示",JOptionPane.PLAIN_MESSAGE);
                     return;  
                  }
             if (jTextField4.getText().trim().equals(""))
                  {
                    JOptionPane.showMessageDialog(null,"收费项目不可为空!","错误提示",JOptionPane.PLAIN_MESSAGE);
                     return;  
                  }
              if (jTextField5.getText().trim().equals(""))
                  {
                    JOptionPane.showMessageDialog(null,"收费金额不可为空!","错误提示",JOptionPane.PLAIN_MESSAGE);
                     return;  
                  }
               if (jTextField6.getText().trim().equals(""))
                  {
                    JOptionPane.showMessageDialog(null,"收款人不可为空!","错误提示",JOptionPane.PLAIN_MESSAGE);
                     return;  
                  }
              if (jTextArea1.getText().trim().equals(""))
                  {
                    JOptionPane.showMessageDialog(null,"如无需备注,请输入无!","错误提示",JOptionPane.PLAIN_MESSAGE);
                     return;  
                  }
         try
            {      
             stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
              String query="select * from 合同表 where 合同编号='"+htbh+"'";
              String fwdm1="select * from 合同表 where 房屋代码='"+fwdm+"'";
              String sfdm1="select * from 收费表 where 收费代码='"+sfdm+"'";
              String input="insert into 收费表 (收费代码,合同编号,房屋代码,收费日期,收费项目,收费金额,收款人,备注)values('"+sfdm+"','"+htbh+"','"+fwdm+"','"+sfrq+"','"+sfxm+"','"+sfje+"','"+skr+"','"+bz+"')";
            rs=stmt.executeQuery(query);
            boolean iRecords=rs.next();
            if(!iRecords)
            {
            JOptionPane.showMessageDialog(this,"对不起,没有此合同,请重新输入");
             jTextField1.setText("");
             //con.close();
            return;
            }
            rs1=stmt.executeQuery(fwdm1);
            boolean i=rs1.next();
            if(!i)
            {
            JOptionPane.showMessageDialog(this,"对不起,没有此房屋,请重新输入");
             jTextField2.setText("");
             //con.close();
            return;
            }
             rs2=stmt.executeQuery(sfdm1);
            boolean i1=rs2.next();
            if(i1)
            {
            JOptionPane.showMessageDialog(this,"对不起,该收费代码已存在,请重新输入!");
             jTextField7.setText("");
             //con.close();
            return;
            }
            int insert=stmt.executeUpdate(input);
           if(insert==1)
           {
            JOptionPane.showMessageDialog(this,"收费信息添加成功!");
             jTextField1.setText("");
             jTextField2.setText("");
             jTextField3.setText("");
             jTextField4.setText("");
             jTextField5.setText("");
             jTextField6.setText("");
             jTextField7.setText("");
             jTextArea1.setText("");
            }
        }
            catch(Exception e)
            {  
            
             e.printStackTrace();
           
            } 
        }        
    运行后
    E:\新建文件夹\FWZL\src\fwzl\sflr.java:241: 无法从静态上下文中引用非静态 方法 getText()
            if (jTextField3.getText().trim().equals("") || TextField.getText().trim().matches("[\\d]{4}[-][\\d]{2}[-][\\d]{2}"))
    1 错误
    生成失败(总时间:1 秒)
      

  16.   

    import import java.lang.String.*;
    java.util.regex.*;
    导入这些包。
    另外getText()不是静态方法,先创建对象,
    TextField tf=new TextField();
    tf.getText().trim().matches("[\\d]{4}-[\\d]{2}-[\\d]{2}")
      

  17.   

    哦,不好意思
    是我打错了
    哪块是jTextField3.getText().trim
      

  18.   

    我的意思是判断日期格式不为"yyyy-mm-dd"的话
    JOptionPane.showMessageDialog(null,"请输入日期格式“yyyy-mm-dd”!","错误提示",JOptionPane.PLAIN_MESSAGE);