2013-07-05 65 views
0

我的GWT項目存在問題:我只關心計算兩個DatePicker窗口小部件的日期(天)之間的差異。如何計算DatePicker窗口小部件中兩個日期之間的差異

這是我的代碼,我把它主要是從這裏:http://www.gwtproject.org/javadoc/latest/com/google/gwt/user/datepicker/client/DatePicker.html

// Create a date picker "FROM: " 
    final DatePicker datePicker1 = new DatePicker(); 
    datePicker1.addValueChangeHandler(new ValueChangeHandler<Date>() { 
     public void onValueChange(ValueChangeEvent<Date> event) { 
     Date date1 = datePicker1.getValue(); 
     } 
    }); 
    // Set the default value 
    datePicker1.setValue(new Date(), true); 

    // Create a date picker "TO: " 
    final DatePicker datePicker2 = new DatePicker(); 
    datePicker2.addValueChangeHandler(new ValueChangeHandler<Date>() { 
     public void onValueChange(ValueChangeEvent<Date> event) { 
     Date date2 = datePicker2.getValue();   
     } 
    }); 
    // Set the default value 
    datePicker2.setValue(new Date(), true); 

    // =================DEBUG=================== 
    Button send = new Button("send", new ClickHandler(){ 
     public void onClick(ClickEvent event) { 
      //calculate difference between date1 and date2 
      days = (int) CalendarUtil.getDaysBetween(date1, date2); 
      Window.alert("Differece: " + days); 
     } 
    }); 

但是當我在Eclipse中沒有錯誤,當我運行Web應用程序,我有這樣的錯誤:

[ERROR] [progetto] Uncaught exception escaped 
com.google.gwt.event.shared.UmbrellaException: Exception caught: null 
[...] 

我可以寫更多的錯誤細節,如果有必要,但它很長...

你能告訴我如何解決這個錯誤或如何用另一種方法計算它?

預先感謝您。

回答

0

在我看來,你的一個對象是null。在這個異常下看看異常,會有更多細節。其次告訴我你在哪裏計算代碼的日子,以及如何?如果你分享更多的代碼,這將是有益的。但我認爲你查找date1和date2爲空。如果你可以請分享更多的代碼,我會更有幫助,並記住這一點進行調試。

+0

我使用完整的代碼編輯了我的帖子。我認爲日期也是空的,但不知道什麼是錯的...在互聯網的一些例子中,我發現方法event.getValue()在我的文章中的鏈接,其他時間,我發現datePicker.getValue(),但沒有人讓我的應用程序正確運行。感謝您的幫助。 – Ciotto

+0

在類級別初始化date1和date2對象,以便onClick事件它們不爲null。也可以使if(data1!= null && date2!= null){你的代碼在這裏}。以及在.addValueChangeHandler方法中打印/調試日期,以便我們知道日期不爲空。 – vicky

+0

我們走吧!我已經將date1和date2初始化爲新的Date(),並刪除了Date date1 = datePicker.getValue()行中的Date類型。現在它工作!謝謝 :) – Ciotto

相關問題