2012-02-13 12 views
5

Na przykład chcę wykonać coś, gdy użytkownik kliknie przycisk. Którego mam użyć? Dokumentacja nie wydaje się bardzo jasnoJava SWT: widgetSelected vs widgetDefaultSelected

UPDATE

Szybki test pokazuje, że Widget Wybrany jest wyzwalany ale nie domyślny wybrany.

W TasksView.main()

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

W 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"); 

     } 

    } 
} 

btw, zrobiłem MVC poprawnie?

Odpowiedz

7

Użyj widgetSelected. W rzeczywistości, tym lepiej po prostu rozszerzyć SelectionAdapter i zastąpić tylko metodę widgetSelected i całkowicie zignorować widgetDefaultSelected.

4

SelectionListener.widgetDefaultSelected(e) ma zachowanie zależne od zestawu narzędzi. Zazwyczaj po prostu wywołuję SelectionListener.widgetSelected(...). (Zauważ, że nie jest to ustawienie domyślne w SelectionAdapter.widgetDefaultSelected(e) - musisz to zrobić sam.