2012-02-13 17 views
5

Ad esempio, desidero eseguire qualcosa quando l'utente fa clic su un pulsante. Quale uso? La documentazione non sembra mettere bene in chiaroSWT Java: widgetSelected vs widgetDefaultSelected

UPDATE

Un rapido test mostra che Widget selezionato è innescata ma non predefinite selezionate.

In TasksView.main()

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

In 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, ho fatto correttamente MVC?

risposta

7

Utilizzare widgetSelected. In effetti, è meglio estendere semplicemente SelectionAdapter e ignorare solo il metodo widgetSelected e ignorare completamente widgetDefaultSelected.

4

SelectionListener.widgetDefaultSelected(e) ha un comportamento dipendente dal toolkit. Solitamente invoco solo SelectionListener.widgetSelected(...). (Nota che questo non è l'impostazione predefinita in SelectionAdapter.widgetDefaultSelected(e) - dovrai farlo tu stesso.