2013-01-21 49 views
4

我正在使用eclipse RCP和视图,并且我想在应用程序关闭时在控制台上打印某些内容。用于ViewPart的Java关闭监听器

这是我所做的,但它不工作;

public void createPartControl(final Composite parent){ 
    parent.getShell().addListener(SWT.CLOSE, new Listener() { 

     @Override 
     public void handleEvent(Event event) { 
     System.out.println("NOW !"); 
     } 
    }); 
} 

编辑: 我发现了一个解决方案,我需要添加一个DisposeListener:

parent.addDisposeListener(new DisposeListener() { 

      @Override 
      public void widgetDisposed(DisposeEvent e) { 
       // TODO Auto-generated method stub 

      } 
     }); 

回答

3

您要使用的SWT.Close事件,而不是SWT.CLOSE。从SWT Javadoc

SWT.Close - 关闭事件类型(值为21)。

SWT.CLOSE - 关闭框修剪的样式常量(值为1 < < 6,因为我们不区分CLOSE样式和MENU样式)。