1

こんにちは、文字列形式の日付があります。

datevalue = [Tue Mar 06 06:00:00CET2012]。

私のコードではtextBox、値が設定されている場所があります。クリックすると、がtextbox表示されますdatepicker

私がやりたいことは、で、値が何であれ、を強調表示datepickerする必要があります。datetextbox

また、クリックdatePickerすると、テキストの値は[Tue Mar 06 06:00:00CET2012]と同じ形式 に なります。

私のコードはです。

private TextBox getTimeLable(String datevalue) {
        // TODO Auto-generated method stub
        System.out.println("date" + datevalue);
        final TextBox   timebx =new TextBox();
        timebx.setReadOnly(true);
        timebx.setText(datevalue);
        final PopupPanel popupPanel=new PopupPanel(true);
        DatePicker datePicker=new DatePicker();
        datePicker.addValueChangeHandler(new ValueChangeHandler<Date>() {

            public void onValueChange(ValueChangeEvent<Date> event) {
                // TODO Auto-generated method stub

                Date date=event.getValue();
                timebx.setText(DateTimeFormat.getFormat("yyyy-MM-dd").format(date));
                popupPanel.hide();
            }
        });
        popupPanel.setWidget(datePicker);
        timebx.addClickHandler(new ClickHandler() {

            public void onClick(ClickEvent event) {
                // TODO Auto-generated method stub
                int x=timebx.getAbsoluteLeft();
                int y=timebx.getAbsoluteTop();
                popupPanel.setPopupPosition(x, y+20);
                popupPanel.show();
            }
        });

        return timebx;
    }

エラーのために編集

errorjava.lang.IllegalArgumentException: [Tue Mar 06 05:00:00 UTC 2012]

errorjava.lang.IllegalArgumentException: [Wed May 09 12:00:00 UTC+2 2012]

最初、テキストボックスはこの値になっています[Tue Mar 06 05:00:00UTC2012]。しかし、テキストボックスをクリックしたら、日付を選択します。日付ピッカーは、テキストボックスに2番目の日付を表示します。WedMay 09 12:00:00 UTC + 2 2012.最初の日付は、私が設定したので、illegalArgumentである可能性があります。しかし、2番目のものは日付ピッカーによって設定されます。

4

1 に答える 1

1

これはうまくいくはずです

import com.google.gwt.i18n.client.DateTimeFormat; 

DatePicker datePicker=new DatePicker();  // Have to make final to use in inner method


timebx.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent event) {
            // TODO Auto-generated method stub
            String strDate = timebx.getText();
            DateTimeFormat format = DateTimeFormat.getFormat("yyyy-MM-dd");
            try {  
              Date selDate = (Date)format.parse(strDate); 
              datePicker.setValue(selDate, true);
            } catch(Exception pe){
             // setting current date
             datePicker.setValue(new Date(), true);
            }

            int x=timebx.getAbsoluteLeft();
            int y=timebx.getAbsoluteTop();
            popupPanel.setPopupPosition(x, y+20);
            popupPanel.show();
        }
    });
于 2012-05-07T05:59:39.497 に答える