@Override
 public boolean stopCellEditing() {
   JFormattedTextField ftf = (JFormattedTextField) getComponent();
   if (ftf.isEditValid()) {
     try {
       ftf.commitEdit();
     } catch (java.text.ParseException exc) {
       // nothing to do
     }
   } else {
     if (!askEditOrRevert(ftf, null)) {
       return false;
     } else {
       ftf.setValue(ftf.getValue());
     }
   }
   return super.stopCellEditing();
 }
 // 当输入组件失去焦点时,该方法被触发
 public boolean verify(JComponent component) {
   JFormattedTextField field = (JFormattedTextField) component;
   // 返回用户输入是否有效
   return field.isEditValid();
 }