Swt壳/对话力焦点

时间:2019-03-14 17:36:24

标签: eclipse shell swt rcp

我正在打开一个Swt对话框。但是在我的应用程序之前,将加载插件并打开对话框,如果用户单击其他一些后台应用程序,则在这种情况下,焦点不在我新创建的对话框上。可以注意到这是因为对话框的标题是灰色的,并且如果我从键盘上键入任何内容,它将在其他打开的应用程序中捕获。我的询问是,一旦打开Swt Shell /对话框,我该如何将焦点重新回到它。

谢谢!

1 个答案:

答案 0 :(得分:2)

您不能强制窗口小部件聚焦,因为它是由OS管理的,但是您可以请求它:

在方法forceActive下调用您可以通过对话框shell

public static void forceActive(final Shell shell) {
    shell.getDisplay().asyncExec(new Runnable() {
        public void run() {
            if (shell != null && !shell.isDisposed()) {
                shell.forceActive();
            }
        }
    });
}