Events 如何将事件与Eclipse页面中打开的所有编辑器关联

Events 如何将事件与Eclipse页面中打开的所有编辑器关联,events,eclipse-plugin,abstract-syntax-tree,Events,Eclipse Plugin,Abstract Syntax Tree,使用下面的代码,我能够捕获eclipse中当前活动编辑器(First.java)中的所有关键事件 IWorkbenchPage=PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); IEditorPart editor=page.getActiveEditor(); ((StyledText)editor.getAdapter(org.eclipse.swt.widgets.Control.class)).ad

使用下面的代码,我能够捕获eclipse中当前活动编辑器(First.java)中的所有关键事件

IWorkbenchPage=PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IEditorPart editor=page.getActiveEditor();
((StyledText)editor.getAdapter(org.eclipse.swt.widgets.Control.class)).addKeyListener(newKeyListener(){
//代码在这里
});
但只要我打开(激活)另一个编辑器(Second.java),就不会捕获关键事件


如何在workbenchPage中打开的所有编辑器上捕获关键事件。

您可以使用
IPartListener
侦听活动部件的更改,以便在部件更改时添加和删除侦听器:

IWorkbenchPage=PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
page.addPartListener(listener);
听众被告知部件被打开、关闭、激活和停用。零件可以是视图或编辑器

注意:并非所有编辑器都使用
StyledText
,因此需要检查
getAdapter
返回的对象的类型