2012-01-24 7 views
3

SWT.Modifyイベントのリスナーを使用しようとしました。これはテキストでは機能しますが、Listでは機能していないようです。つまり、次のコードは機能しません。SWTリストの内容の変更を聞くにはどうすればいいですか?

myList = new List(listComp, SWT.MULTI|SWT.BORDER|SWT.V_SCROLL); 
    myList.addListener(SWT.Modify, new Listener() { 
     public void handleEvent(Event e) { 
      System.out.println("My list modified"); 
      dirty=true; 
      } 
     }); 

ありがとうございました。

答えて

1

SWT.Modifyの代わりにSWT.Selectionイベントを聞きます。

addSelectionChangedListener()addPostSelectionChangedListener()方法を有する(リストの代わりListViewerを使用することも検討後キーボードでリストにナビゲートする、代わりに各項目に通知する際に、ユーザが項目を「停止した」ときに通知することに使用されます)。

+1

ありがとう、しかし...私は「選択」に興味がありません。リストは、 "add"と "remove"を使用してコードから変更されます。ユーザーの選択はありません。 – user990371

+2

あなたのコードがリストに要素を追加している場合は、独自のリスナーのリストを管理して通知する必要があります。 Listのリスナーを使用して、 'myList.notifyListeners(SWT.Modify、null)'で通知することができます(リストはイベントの変更を使用しないためListの動作に干渉しません)。 – Baldrick

1

モデルにリスナーを登録してください。リスナーはリストで視覚化され、そのウィジェットの代わりに変更を待ち受けます。

関連する問題