Java 在jTable中动态解析日期

Java 在jTable中动态解析日期,java,swing,date,jtable,Java,Swing,Date,Jtable,我有一个四列的jTable。第一列保存成员的一些代码,第二列保存成员的准入日期,第三列保存成员的验证到期日期。如果过期日期超过系统日期的10天,我必须从列中删除行 我写的代码是这样的: public void expire(){ try{ DefaultTableModel model = (DefaultTableModel) empTbl.getModel(); int col=2; int rows = empTbl.getRowCount();

我有一个四列的jTable。第一列保存成员的一些代码,第二列保存成员的准入日期,第三列保存成员的验证到期日期。如果过期日期超过系统日期的10天,我必须从列中删除行

我写的代码是这样的:

    public void expire(){

    try{
    DefaultTableModel model = (DefaultTableModel) empTbl.getModel();
    int col=2;
    int rows = empTbl.getRowCount();
    for(int row=0; row<=rows; row++){

     SimpleDateFormat formater = new SimpleDateFormat("dd-MM-yyyy");
     Calendar currentDate = Calendar.getInstance();
     String d = formater.format(currentDate.getTime());
     Date haatdinPisorTarikh = (Date)formater.parse(d);   

     String expdate = (String)empTbl.getValueAt(row, col);
     Date expire=(Date)formater.parse(expdate);
     Calendar expireDate = Calendar.getInstance();
     expireDate.add(Calendar.DATE, -10);

     if(expireDate.after(haatdinPisorTarikh)){
     model.removeRow(row);
     }
     }

      }catch(ParseException ex){}
       }
public void expire(){
试一试{
DefaultTableModel=(DefaultTableModel)empTbl.getModel();
int col=2;
int rows=empTbl.getRowCount();

对于(int row=0;row来说,最重要的问题是在您的循环中(显然)


int rows=empTbl.getRowCount();//最重要的问题是在循环中(显然)


int rows=empTbl.getRowCount();//您可以从末尾开始组织

int rows = empTbl.getRowCount(); 
for(int row=rows-1; row>=0; row--) {
    //delete from model won't harm your row indexes.
}

您可以从末尾开始组织

int rows = empTbl.getRowCount(); 
for(int row=rows-1; row>=0; row--) {
    //delete from model won't harm your row indexes.
}