在JFace的TableViewer中使用MessageDialog后失去焦点



我对MessageDialog有一个奇怪的问题。我有一个对话框,里面有一个TableViewer。我的计划是,当用户在TableViewer中选择某个内容时,它将弹出一个警告对话框。代码如下:

contextTableViewer = new TableViewer(tableContainer, SWT.BORDER | SWT.FULL_SELECTION);
contextTableViewer.addSelectionChangedListener(new ISelectionChangedListener() {
  public void selectionChanged(SelectionChangedEvent event) {
    ...
    if () {
       Shell pshell = Display.getCurrent().getActiveShell();
        MessageDialog.openWarning(pshell, "something", "something");
    }
    ...
  }

我的问题是,在弹出警告对话框后,我失去了注意力。例如,我需要单击两次"取消"按钮来关闭包含TableViewer的对话框。我试着使用setFocus()来设置焦点,但没有成功。有什么建议吗?非常感谢。

我不知道为什么会发生这种情况,我通过模仿鼠标点击对话框来恢复焦点来解决问题。

最新更新