【发布时间】:2023-04-10 14:20:01
【问题描述】:
我有一个扩展 ColumnViewerToolTipSupport 的类。此类覆盖createViewerToolTipContentArea() 并为工具提示提供自定义内容。
当工具提示打开时按下 ESC 键时,将调用 shell.close() 方法。即使我在工具提示 shell 中添加了一个关键侦听器,也会调用 shell.close() 本身。
下面的监听代码:
@Override
protected Composite createViewerToolTipContentArea(Event event, ViewerCell cell, final Composite shell) {
Display.getDefault().getActiveShell().addListener(SWT.KeyDown, new Listener() {
@Override
public void handleEvent(final Event event) {
if (event.type == SWT.KeyDown) {
System.out.println("key pressed ..........close shell");
}
}
});
}
这里有什么错误吗??
【问题讨论】:
-
只听一个事件不会改变其他听者的行为。
-
我可以在这里做什么来调用我的监听器而不是 shell 监听器??
-
您可以尝试调用
getListeners(SWT.KeyDown),然后删除监听器。
标签: java eclipse swt listener rcp