从引导gwt java datetimepicker获取值

从引导gwt java datetimepicker获取值,java,twitter-bootstrap,gwt,gwt-bootstrap,Java,Twitter Bootstrap,Gwt,Gwt Bootstrap,我试图在我的gwt java web应用程序中使用bootstrap3 datetimepicker,但我不确定是否一切正常,因为它似乎没有传递字段的值。这是我的密码: datePicker = new DateTimePicker(); datePicker.setFormat("dd MM yyyy hh ii"); datePicker.setStartDate(new Date()); datePicker.setLanguage(DateTimePic

我试图在我的gwt java web应用程序中使用bootstrap3 datetimepicker,但我不确定是否一切正常,因为它似乎没有传递字段的值。这是我的密码:

    datePicker = new DateTimePicker();
    datePicker.setFormat("dd MM yyyy hh ii"); 
    datePicker.setStartDate(new Date());
    datePicker.setLanguage(DateTimePickerLanguage.IT);
    Date expDate= datePicker.getValue();
对吗?因为它似乎没有传递任何值。我还尝试添加一个事件处理程序,如下所示:

        datePicker.addValueChangeHandler(new ValueChangeHandler<Date>() {
        @Override
        public void onValueChange(ValueChangeEvent<Date> event) {
             Date expDate= event.getValue();
             datePicker.setFormat("dd MM yyyy hh ii"); 
        }
       });
我不明白是否需要一个事件处理程序来捕获datetimepicker的值,如果需要,我如何在onValueChange方法的范围之外使用expDate变量,因为我不想将其设置为全局变量。谢谢

在没有不必要的代码的完整类之上:

public class InsAst extends HTMLPanel {
private final AoLServiceAsync myAol = GWT.create(AoLService.class);
private DateTimePicker datePicker = new DateTimePicker();
private Date boxData;

public InsAst (final String cat) {

    super("");

    datePicker.setFormat("dd MM yyyy hh ii");
    datePicker.setStartDate(new Date());
    datePicker.setLanguage(DateTimePickerLanguage.IT);
    Label dataLabel = new Label("Exp date: ");
    dataLabel.setStyleName("control-label");
    dataLabel.getElement().getStyle().setProperty("float", "left");

    datePicker.addValueChangeHandler(new ValueChangeHandler<Date>() {
        public void onValueChange(ValueChangeEvent<Date> event) {
          boxData = event.getValue();
        }
      });

    objPanel.add(dataLabel);   
    objPanel.add(datePicker);

    addAstButton.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {

            String user=MenuBar.getUsername(); 
            Date expDate= boxData;

            [...other code]

}
onValueChange的值应位于收到的ValueChangeHandler中

您可能应该调用另一个向下传递该日期的方法,而不是将其作为全局变量

如果没有更完整的代码示例,很难说得更多

PS:检查GWT Bootstrap的showcase以获取工作样本:

请注意:

在示例中,他们正在创建DateBox的实例,而不是DateTimePicker。 DateTimePicker是一个AFAIK基于Bootstrap2的类。对于Bootstrap3检查。
我最终发现问题出在这行代码中:

datePicker.setFormat("dd MM yyyy hh ii");

可能这传递了一个与java日期不兼容的错误类型的值。

非常感谢Carlos,我刚刚编辑了我的消息,添加了完整的代码……您认为onValueChange的值应该在收到的ValueChangeHandler中是什么意思?我注意到,在我找到的每个示例中,DateTimePicker都在onModuleLoad方法中使用,例如,如果我不在onModuleLoad方法中,我该如何使用它?这个,我还没有找到。嗯,我尝试使用DateBox而不是DateTimePicker,它似乎可以工作…而且没有添加任何事件处理程序。我真的不知道为什么。但datebox只选择日期…我还需要时间:有一个DateTimeBox。