我正在用 Java 编写一个语法高亮文本编辑器,但我遇到了一些问题,即我应该做什么而不是我想要做什么。基本上 KeyEvent 类给我带来了一些问题:
- KeyTyped 不允许我识别密钥是什么,因此它对词法分析毫无用处。
- KeyPressed 更好,它允许我在按下每个键时对其进行标识,这对词法分析非常有用,但是它会在键实际放入 JEditorPane 之前触发事件。
- KeyReleased 解决了 KeyPressed 和 KeyTyped 的问题,因为它发生在输入字符之后,它允许我实际识别字符是什么。但是,如果我持有 'a' 并放入 50 个 'a',我就完蛋了。
我对这个问题的解决方案是对所有要输入的字符使用 KeyPressed,使用事件,读取应该输入的字符并手动输入它,但是我猜这不是最优雅的解决方案. 我的问题是我还能怎么做?有什么我只是在上釉,还是我找到了解决问题的方法并且应该顺其自然?