2016-12-08 59 views
0

我需要在Gwt中的列表框中點擊動態添加項目。我需要使用哪個處理程序? 稍後我將能夠使用addChangeHandler一旦項目添加到列表框。 如果我使用單擊處理程序將項目添加到列表框,項目被添加到列表框。但是在列表框的點擊上,列表框項目沒有列出。 Listbox立即關閉,點擊它。 如何解決此問題如何將項目動態添加到GWT中的列表框中

回答

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); 
    } 
} 
相關問題