2012-02-13 9 views
5

Ví dụ: tôi muốn thực hiện điều gì đó khi người dùng nhấp vào nút. Tôi sử dụng cái nào? Các tài liệu đã không xuất hiện để làm cho nó rất rõ ràngJava SWT: widgetSelected vs widgetDefaultSelected

CẬP NHẬT

Xét nghiệm nhanh cho thấy Widget chọn được kích hoạt nhưng không chọn mặc định.

Trong TasksView.main()

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

Trong 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, Did tôi làm MVC một cách chính xác?

Trả lời

7

Sử dụng widgetSelected. Trong thực tế, tất cả tốt hơn là chỉ cần mở rộng SelectionAdapter và chỉ ghi đè phương thức và hoàn toàn bỏ qua widgetDefaultSelected.

4

SelectionListener.widgetDefaultSelected(e) có hành vi phụ thuộc vào bộ công cụ. Tôi thường chỉ gọi SelectionListener.widgetSelected(...). (Lưu ý rằng đây không phải là mặc định trong SelectionAdapter.widgetDefaultSelected(e) - bạn sẽ phải tự làm điều này.