2013-07-05 5 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); 
     } 
    }); 

, но пока у меня нет ошибки в затмении, когда я запустить веб-приложение, у меня есть эта ошибка:

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

В случае необходимости я могу написать дополнительную информацию об ошибке, но это очень долго ...

Не могли бы вы рассказать мне, как исправить эту ошибку или как ее вычислить с помощью альтернативных методов?

Заранее спасибо.

ответ

0

Мне кажется, что один из ваших объектов имеет значение null. посмотрите на исключение в этом исключении, будет более подробно. Во-вторых, скажите мне, где вы вычисляете дни в коде и как? если вы разделите больше кода, это будет полезно. Но я думаю, что вы ищете date1 и date2 для null. Если вы можете поделиться другим кодом, я буду более полезным и сделаю отладку, учитывая это.

+0

Я отредактировал свое сообщение с полным кодом. Я думаю, что даты тоже нулевые, но не знаю, что не так ... В некоторых примерах в Интернете я нашел метод event.getValue() как в ссылке в моем сообщении, в других случаях я нашел datePicker.getValue(), но никто не позволяет моему приложению работать правильно. спасибо за помощь. – Ciotto

+0

инициализировать объект date1 и date2 на уровне класса, чтобы события onClick не были нулевыми. Также создайте условие, подобное if (data1! = Null && date2! = Null) {ваш код здесь}. наряду с этим, даты печати/отладки в обоих методах .addValueChangeHandler, чтобы мы знали, что даты не ноль. – vicky

+0

Здесь мы идем! Я инициализировал date1 и date2 как новую Date() и удалил тип Date в строке Date date1 = datePicker.getValue(). Теперь это работает! Спасибо :) – Ciotto