Java 如何在用户键入时侦听JTextPane中的大写字符

Java 如何在用户键入时侦听JTextPane中的大写字符,java,listener,text-editor,jtextpane,uppercase,Java,Listener,Text Editor,Jtextpane,Uppercase,第一次询问 我使用java的JTextPane开发了一个文本编辑器。编辑现在做编辑应该做的一切;打开、关闭、保存、另存为、剪切、复制和粘贴等。我有两个额外的按钮,可以对所选文本执行各种操作 现在我的问题是: 我希望每次用户键入以国会大厦字母开头的单词时都执行其中一种方法。我只是有点不知道从哪里开始检查用户键入的每个字符是否都是国会大厦 希望我提供了足够的信息 谢谢当用户键入“I”时,您想做什么?你不知道下一个角色是什么。它可以是大写字符、小写字符或空格 我不确定每次键入大写字符时您打算执行什么类

第一次询问

我使用java的JTextPane开发了一个文本编辑器。编辑现在做编辑应该做的一切;打开、关闭、保存、另存为、剪切、复制和粘贴等。我有两个额外的按钮,可以对所选文本执行各种操作

现在我的问题是: 我希望每次用户键入以国会大厦字母开头的单词时都执行其中一种方法。我只是有点不知道从哪里开始检查用户键入的每个字符是否都是国会大厦

希望我提供了足够的信息


谢谢

当用户键入“I”时,您想做什么?你不知道下一个角色是什么。它可以是大写字符、小写字符或空格

我不确定每次键入大写字符时您打算执行什么类型的处理,因为通常在输入其他字符之前您不知道该字符的上下文

在任何情况下,您都可以在使用
DocumentFilter
进行更改之前拦截对
JTextPane
文档的更改。因此,当输入大写字符时,可以使用
DocumentFilter
调用方法。有关更多信息,请查看上的Swing教程部分


另外,当用户向文本窗格粘贴字符串时会发生什么情况?有几个单词可能包含大写字符。

正如camickr所说,DocumentFilter是最好的答案,他需要做的是跟踪
空格
,如果后跟大写字母
“[a-Z]”
,然后保存插入符号
位置,当输入另一个空格时,单词完成并触发操作。顺便说一句,他不仅需要记录空格,还需要记录新行和制表符。

您希望检查用户何时完成键入单词,例如,通过键入空格、、!等等…那会有用的是的。if(用户键入空格)检查前一个单词的第一个字母是否为大写。或者检查每个字符是否为大写,并在按下空格键时将单词保存为字符串以进行操作。