2011-04-20 63 views
0

我正在使用DatePicker小部件,並在它旁邊放置了一個小日曆圖像。當你點擊實際的DatePicker文本框時,日曆彈出窗口彈出(應該如此)。我正在尋找將此點擊處理添加到小日曆圖像中,以便用戶可以單擊框或圖像以查看日曆彈出窗口。是否有捷徑可尋?GWT DatePicker識別日曆圖標點擊

我想這可能是這樣的:

calendarImage.addClickHandler(datePick.getTextBox().getClickHandler()) 

但它似乎什麼都不是這樣的存在。

在此先感謝!

回答

3

只需將clickhandler添加到將日期選擇器設置爲可見的圖像即可。

它會成爲這樣的事情:

private DatePicker datePicker = new DatePicker(); 
private TextBox textBox = new TextBox(); 
private Image icon = new Image("calendar.png"); 

public void onModuleLoad() { 

    datePicker.addValueChangeHandler(new ValueChangeHandler<Date>() { 

     @Override 
     public void onValueChange(ValueChangeEvent<Date> event) { 
      Date date = event.getValue(); 
      String dateStr = DateTimeFormat.getFormat(DateTimeFormat.PredefinedFormat.DATE_MEDIUM).format(date); 
      textBox.setText(dateStr); 
      datePicker.setVisible(false); 
     } 
    }); 
    datePicker.setVisible(false); 

    icon.addClickHandler(new ClickHandler() { 

     @Override 
     public void onClick(ClickEvent event) { 
      datePicker.setVisible(true);   
     } 
    }); 

    RootPanel.get().add(icon); 
    RootPanel.get().add(textBox); 
    RootPanel.get().add(datePicker); 
} 
+0

大 - 謝謝!我用datePicker.showDatePicker()代替了datePicker.getDatePicker()。setVisible(true),它工作得很好。謝謝! – jcovert 2011-04-21 14:53:13

+0

很高興幫助你。 – 2011-04-21 14:55:58

2

假設你的意思是DateBox當你寫DatePicker,只需調用showDatePicker上的圖標點擊(和/或測試isDatePickerShowing並調用hideDatePicker