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