2016-12-08 33 views
0

Gwtのリストボックスをクリックして項目を動的に追加する必要があります。どのハンドラを使用する必要がありますか? 後でリストボックスにアイテムが追加されると、addChangeHandlerを使用することができます。 クリックハンドラを使用してリストボックスに項目を追加すると、項目がリストボックスに追加されます。しかし、リストボックスをクリックすると、リストボックスの項目は表示されません。リストボックスはクリックするとすぐに閉じます。 この問題の解決方法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); 
    } 
} 
関連する問題