2012-02-13 14 views
5

उदाहरण के लिए जब मैं बटन पर क्लिक करता हूं तो मैं कुछ निष्पादित करना चाहता हूं। मैं कौन सा इस्तेमाल करूं? प्रलेखन यह बहुत स्पष्टजावा एसडब्ल्यूटी: विजेट चयन किए गए बनाम विजेट डीफॉल्ट चयनित

अद्यतन

एक त्वरित परीक्षण से पता चलता है कि विजेट चयनित शुरू हो रहा है, लेकिन नहीं है चयनित डिफ़ॉल्ट बनाने के लिए प्रकट नहीं किया था।

TasksView.main()

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

में 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 में, मैं MVC सही ढंग से किया?

उत्तर

7

widgetSelected का उपयोग करें। वास्तव में, बस बेहतर है कि SelectionAdapter का विस्तार करें और केवल widgetSelected विधि को ओवरराइड करें और पूरी तरह से widgetDefaultSelected को अनदेखा करें।

4

SelectionListener.widgetDefaultSelected(e) में टूलकिट निर्भर व्यवहार है। मैं आमतौर पर केवल SelectionListener.widgetSelected(...) का आह्वान करता हूं। (ध्यान दें कि यह SelectionAdapter.widgetDefaultSelected(e) में डिफ़ॉल्ट नहीं है - आपको इसे स्वयं करना होगा।

संबंधित मुद्दे