2012-02-13 39 views
5

たとえば、ユーザーがボタンをクリックしたときに何かを実行したいとします。どちらを使いましょう?ドキュメントはJava SWT:widgetSelectedとwidgetDefaultSelected

UPDATE

簡単なテストは、ウィジェット選択したデフォルトトリガではなく、選択されたことを示し、それは非常に明確には見えませんでした。 TasksController

public class TasksController extends ControllerAbstract { 
    protected TasksView view; 

    public TasksController(TasksView view) { 
     this.view = view; 
     view.addTaskListener(new AddTaskListener()); 
    } 

    protected class AddTaskListener implements SelectionListener { 

     @Override 
     public void widgetDefaultSelected(SelectionEvent arg0) { 
      System.out.println("Default Selected"); 

     } 

     @Override 
     public void widgetSelected(SelectionEvent arg0) { 
      System.out.println("Widget Selected"); 

     } 

    } 
} 

TasksView.main()

TasksView view = new TasksView(shell, SWT.None); 
TasksController controller = new TasksController(view); 

ところで、私は正しくMVCをしましたか?

答えて

7

widgetSelectedを使用してください。実際には、単にSelectionAdapterを拡張してwidgetSelectedメソッドをオーバーライドし、widgetDefaultSelectedを完全に無視するだけです。

4

SelectionListener.widgetDefaultSelected(e)には、ツールキットに依存する動作があります。私は通常、SelectionListener.widgetSelected(...)を呼び出します。 (これはSelectionAdapter.widgetDefaultSelected(e)のデフォルトではないことに注意してください - あなた自身でこれを行う必要があります。