我需要在点击Gwt中的列表框时动态添加项目。我需要使用哪个处理程序? 稍后,一旦将项目添加到列表框,我将能够使用addChangeHandler。 如果我使用单击处理程序将项目添加到列表框,则项目将添加到列表框中。但是单击列表框时,列表框项目未列出。单击列表框会立即关闭它。 如何解决此问题
答案 0 :(得分:1)
以下是一个简单的代码,用于演示如何将项目添加到ListBox
。
你需要先了解一些事情:
ClickEvent
被点击,只要点击ListBox
:第一次点击显示列表时,第二次点击选择项目时; ChangeEvent
- 您无法使用它来跟踪项目列表本身的更改; public class ListBoxTest implements EntryPoint {
private TextArea log = new TextArea();
private ListBox listBox = new ListBox();
private int i;
@Override
public void onModuleLoad() {
for(int j = 0; j < 5; j++)
listBox.addItem("item " + i++);
listBox.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
log(event.toDebugString());
for(int j = 0; j < 5; j++)
listBox.addItem("item " + i++);
}
});
listBox.addChangeHandler(new ChangeHandler() {
@Override
public void onChange(ChangeEvent event) {
log(event.toDebugString());
}
});
RootPanel.get().add(listBox);
RootPanel.get().add(log);
}
private void log(String text) {
String logText = log.getText();
if(!logText.isEmpty())
logText+= "\n";
logText+= text;
log.setText(logText);
}
}