为日期类型的控件添加focusLost事件

来源:互联网 发布:c语言中的链表 编辑:程序博客网 时间:2024/06/18 06:03

、普通日期控件

  1. public void onLoad() throws Exception {  
  2. super.onLoad();  
  3. //当鼠标在签约日期处失去焦点时,设置到期日期默认为签约日期后1年减一天,如签约日期为2009-1-10,则到期日期就是2010-1-9  
  4. this.pksignDate.getEditor().getEditorComponent().addFocusListener(new java.awt.event.FocusAdapter() {  
  5. public void focusLost(java.awt.event.FocusEvent e) {  
  6. try {  
  7. pksignDate_focusLost(e);  
  8. if (pksignDate.getValue() != null){  
  9. Calendar cal = Calendar.getInstance();   
  10. cal.setTime((Date)pksignDate.getValue());  
  11. cal.add(Calendar.YEAR,1);  
  12. cal.add(Calendar.DAY_OF_MONTH,-1);  
  13. pkcontractEndDate.setValue(cal.getTime());  
  14. }  
  15. } catch(Exception exc) {  
  16. handUIException(exc);  
  17. }  
  18. }  
  19. });  

二、在分录中的日期控件

  1. /**  
  2. * @author 胡千好  
  3. */  
  4. protected void kdtEntrys_editStopped(KDTEditEvent e) throws Exception {  
  5. super.kdtEntrys_editStopped(e);  
  6. int row = e.getRowIndex();  
  7. int col = e.getColIndex();  
  8. //如果是费用开始日期那一列  
  9. if(col==2){  
  10. if(this.kdtEntrys.getCell(row,col).getValue()!=null){  
  11. Calendar cal = Calendar.getInstance();   
  12. cal.setTime((Date)this.kdtEntrys.getCell(row,col).getValue());  
  13. cal.add(Calendar.YEAR,1);  
  14. cal.add(Calendar.DAY_OF_MONTH,-1);  
  15. //设置费用结束日期为开始日期后一年  
  16. this.kdtEntrys.getCell(row,"feeEndDate").setValue(cal.getTime());  
  17. }  
  18. }  

0 0
原创粉丝点击