4

根据我的要求,我编写了一个自定义面板,它将显示三个列表框,以使用户能够从此自定义列表框中选择日期。这三个列表框负责显示月、日、年值。现在我想让我的三个列表框可以编辑并且同时可以选择。我的意思是我想提供一个用户偏好,日期可以编辑,同时可以选择。我怎样才能在 GWT 中做到这一点。这里我使用的是 GWT2.0。任何人请给出一个想法。

4

3 回答 3

2

浏览器不提供这样的控件。GWT 也没有。您需要自己编写代码。EXT-GWT(not free) ComboBox 有这个功能。http://www.extjs.com/examples/ Smart GWT 也是如此(也不是免费的)http://www.smartclient.com/smartgwt/showcase/#styled_combobox_category

如果您要自己滚动,您将从具有 TextBox 和 VerticalPanel 的 Composite 开始,当单击 TextBox(或它的一部分)时会显示该面板。您的面板将包含可点击的项目。

于 2010-05-25T06:57:59.677 回答
1

您可以使用建议框而不是列表框来解决这个问题。但是用户必须开始输入才能显示列表。

于 2010-05-26T09:46:16.090 回答
0

您可以使用绝对面板来实现相同的效果......下面是代码片段。

使用文本框隐藏选择框调整文本框的宽度和位置,使其覆盖下拉列表...

final AbsolutePanel absolute_panel_edit_list = new AbsolutePanel();
final TextBox onhold_textbox = new TextBox();
final ListBox onhold = new ListBox();

for (int onholdcount = 0; onholdcount < onHoldTypes.length; onholdcount++)
{
   onhold.addItem(onHoldTypes[onholdcount]);
}

onhold.addKeyPressHandler(new KeyPressHandler()
{       
   @Override
   public void onKeyPress(KeyPressEvent event) 
   {
      onhold_textbox.setStyleName("onhold_textbox");
      absolute_panel_edit_list.add(onhold,0,8);
      absolute_panel_edit_list.add(onhold_textbox,1,10);
      absolute_panel_edit_list.setSize("142px", "35px");

      flex_row4.removeCell(4, 9);
      flex_row4.setWidget(4, 9, absolute_panel_edit_list);
      onhold_textbox.addMouseOutHandler(new MouseOutHandler() 
      {        
         @Override
         public void onMouseOut(MouseOutEvent event) 
         {
            String customized_time = onhold_textbox.getText();
            int no_of_elements = onhold.getItemCount();
            onhold.addItem(customized_time);
            onhold.setSelectedIndex(no_of_elements);
            flex_row4.removeCell(4, 9);
            flex_row4.setWidget(4, 9, onhold);
            flex_row4.setWidget(4, 11, completed_togglebutton);
            flex_row4.setWidget(4, 13, completed_label);      
         }
      });
   }
});
于 2010-07-06T11:31:24.827 回答