Java 在jface SourceViewer中处理KeyEvent不会';t尊重doit=false
我有一个正在修改的JFace SourceViewer,我想在用户按下其中的ENTER键时捕获它,执行一些代码,然后取消进一步执行ENTER事件。换句话说,我不希望在SourceViewer文本中使用回车符 我设置了一个KeyListener和一个TraverseListener,它们都被正确触发,但是当我设置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
evt.doit=false
时,回车符仍然显示在源代码查看器中
如果我在StyledText小部件中执行相同的操作,它将正常工作。SourceViewer类中是否存在重写设置doit=false的情况?我猜您的侦听器在侦听器列表中被激发到最晚。请记住,
StyledText
不是本机控件,因此键、鼠标、绘制、调整大小等的处理是通过在画布上安装侦听器来完成的-请参阅StyledText.installListeners()
如果在您有机会设置doit=false
之前运行此侦听器,则密钥将已被使用
通过挂接到SWT,您可能会有更好的更改。不过请验证事件