2

在我的 Eclipse RAP 应用程序中,每当任何其他组件打开对话框(或前台中的任何其他元素)时,我都需要让组件更改其外观。发生这种情况时,如何让我的组件检测到?我曾尝试使用 Display.addListener/addFilter,但是当 JFace 对话框打开时,它们不会收到事件。

[顺便说一句,这样做的原因是这个组件包含一个Java小程序,而Java小程序不服从z-ordering,所以小程序出现在前台对话框的顶部。]

4

1 回答 1

2

如果为SWT.Activate事件添加显示过滤器,则应该通知每个变为活动的 shell,包括 JFace 对话框。这适用于我的 RAP 2.0 M3,但也适用于早期版本。

display.addFilter( SWT.Activate, new Listener() {
  public void handleEvent( Event event ) {
    System.out.println( display.getActiveShell() );
  }
} );
于 2012-12-12T09:05:53.230 回答