当焦点转移到另一个应用程序时关闭SWT应用程序

时间:2017-04-28 14:38:39

标签: swt

我希望当应用程序的焦点移动到另一个应用程序时,应用程序将被关闭,例如,如果用户单击桌面上的某个位置,应该关闭应用程序。

我尝试使用焦点监听器,但它不起作用。这是什么解决方案?

1 个答案:

答案 0 :(得分:2)

除了焦点侦听器之外,还需要向shell添加SWT.Deactivate侦听器,并在发生此事件时退出应用程序。

例如:

Shell shell = ...
shell.addListener( SWT.Deactivate, event -> shell.close() );
...
while( !shell.isDisposed() ) {
  if( !display.readAndDispatch() )
    display.sleep();
}

该示例假定shell是唯一的shell,从而导致程序结束。