gpt4 book ai didi

java - 在 jface SourceViewer 中处理 KeyEvent 不尊重 doit=false

转载 作者:行者123 更新时间:2023-12-02 08:15:53 24 4
gpt4 key购买 nike

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

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

如果我在 StyledText 小部件中执行相同的操作,它会正常工作。 SourceViewer 类中是否发生了覆盖设置 doit=false 的事情?

最佳答案

我的猜测是,您的监听器在监听器列表中被解雇得太晚了。请记住,StyledText 不是 native 控件,因此对按键、鼠标、绘画、调整大小等的处理是通过在 Canvas 上安装监听器来处理的 - 请参阅 StyledText.installListeners().

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

不过,通过 Hook SWT.Verify 事件,您可能会得到更好的改变...

关于java - 在 jface SourceViewer 中处理 KeyEvent 不尊重 doit=false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6459931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com