gpt4 book ai didi

java - 在 JTextPane 中控制选择/浏览

转载 作者:行者123 更新时间:2023-11-29 03:28:03 25 4
gpt4 key购买 nike

我有一个 JTestPane 包含一些文本(显然)。使用键盘浏览文本时,通常使用 control + 向右箭头来跳过整个单词。 JTestPane 中的默认行为是将插入符放在下一个单词的第一个字符之前。

例如,让我们考虑“This is a sentence”这句话。从位置 0 开始,如果我跳过“This”并转到下一个单词(使用 CTRL+RIGHT),插入符号将位于位置 5,即就在“is”之前。

这对于浏览来说很好,但我不喜欢这种文本选择行为。在我正在处理的应用程序中,如果在使用 SHFT+CTRL+RIGHT 时,我只选择“This”(没有多余的空格)而不是默认情况下的“This”,那就更好了。换句话说,我想选择字符 0-3 而不是 0-4。

我没有找到太多关于如何调整 Swing 以获得这种结果的信息。到目前为止,我已经尝试将 CaretListener 注册到 JTestPane 并手动缩短选择,以便在必要时删除尾随空格。不过感觉不对,而且效果也不佳,因为它阻止了选择多个单词。

所以,如果有人能指出我正确的方向,我会非常高兴。

最佳答案

Swing 使用 Key Binding 在调用某个 KeyStroke 时调用 Action。参见 Key Bindings有关这些绑定(bind)的列表。如您所见,在这种情况下调用了 selection-next-word 操作,因此您需要提供自定义操作。

您可以查看 DefaultEditorKit 的源代码 - 了解它是如何实现的,只需减少选择 1。

或者您可以使用 Wrapping Actions包装原始 Action 的概念,然后只需调用 JTextPane 的 setSelection() 方法将选择重置为比您需要的少 1 个。不确定更简单的方法是什么。

关于java - 在 JTextPane 中控制选择/浏览,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19939565/

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