第一次问问。
我使用java的JTextPane开发了一个文本编辑器。编辑目前做编辑应该做的一切;打开,关闭,保存,保存,切割,复制和粘贴等。我有几个额外的按钮,可以对所选文本执行各种操作。
现在我的问题: 我希望每次用户键入以国会大厦字母开头的单词时,都会执行其中一种方法。我只是有点迷失在哪里开始检查每个角色是否是用户输入的国会大厦。
希望我提供了足够的信息。
由于
答案 0 :(得分:0)
当用户输入“I”时,您想要做什么?你不知道下一个角色会是什么。它可以是大写字符,小写字符或空格。
我不确定每次输入大写字符时你打算做什么类型的处理,因为通常在输入其他字符之前你不知道该字符的上下文。
在任何情况下,您都可以在使用Document
进行更改之前拦截对JTextPane
的{{1}}的更改。因此,当输入大写字符时,您可以使用DocumentFilter
来调用您的方法。有关详细信息,请查看Implementing a Document Filter上Swing教程中的部分。
此外,当用户将文本字符串粘贴到文本窗格时会发生什么?其中一些单词可能包含大写字符。
答案 1 :(得分:0)
正如camickr所说,DocumentFilter是最好的答案,他需要做的是跟踪space
,如果后跟大写字母"[A-Z]"
,则保存caret
位置,当输入另一个空格时,该单词结束并触发该动作。顺便说一下,他不仅需要跟踪空间,还要跟踪新的线条和制表符。