Java 在jface SourceViewer中处理KeyEvent不会';t尊重doit=false

Java 在jface SourceViewer中处理KeyEvent不会';t尊重doit=false,java,swt,jface,Java,Swt,Jface,我有一个正在修改的JFace SourceViewer,我想在用户按下其中的ENTER键时捕获它,执行一些代码,然后取消进一步执行ENTER事件。换句话说,我不希望在SourceViewer文本中使用回车符 我设置了一个KeyListener和一个TraverseListener,它们都被正确触发,但是当我设置evt.doit=false时,回车符仍然显示在源代码查看器中 如果我在StyledText小部件中执行相同的操作,它将正常工作。SourceViewer类中是否存在重写设置doit=fa

我有一个正在修改的JFace SourceViewer,我想在用户按下其中的ENTER键时捕获它,执行一些代码,然后取消进一步执行ENTER事件。换句话说,我不希望在SourceViewer文本中使用回车符

我设置了一个KeyListener和一个TraverseListener,它们都被正确触发,但是当我设置
evt.doit=false
时,回车符仍然显示在源代码查看器中


如果我在StyledText小部件中执行相同的操作,它将正常工作。SourceViewer类中是否存在重写设置doit=false的情况?

我猜您的侦听器在侦听器列表中被激发到最晚。请记住,
StyledText
不是本机控件,因此键、鼠标、绘制、调整大小等的处理是通过在画布上安装侦听器来完成的-请参阅
StyledText.installListeners()

如果在您有机会设置
doit=false
之前运行此侦听器,则密钥将已被使用

通过挂接到
SWT,您可能会有更好的更改。不过请验证
事件