根据我的要求,我编写了一个自定义面板,它将显示三个ListBox,使用户可以从这个自定义列表框中选择日期。这三个列表框负责显示月,日,年值。现在我想让我的三个列表框是可编辑的,同时可以选择。我的意思是我想提供一个用户首选项,日期可以编辑,同时可以选择。我怎么能在GWT中做到这一点。我在这里使用GWT2.0。请任何人提出想法。
答案 0 :(得分:2)
浏览器不提供此类控件。 GWT也没有。您需要自己编码。 EXT-GWT(非免费)ComboBox具有此功能。 http://www.extjs.com/examples/ Smart GWT(也非免费)http://www.smartclient.com/smartgwt/showcase/#styled_combobox_category
也是如此如果你要自己滚动,你可以从一个Composite开始,它有一个TextBox和一个VerticalPanel,它在单击TextBox(或它的一部分)时显示。您的面板将包含可点击的项目。
答案 1 :(得分:1)
您可以使用suggestBox而不是列表框来解决这个问题。但是用户必须开始输入才能显示列表。
答案 2 :(得分: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);
}
});
}
});