用户输入一些文字。当他们按下按钮时,他们键入的内容将被拆分并进行颜色编码:
colors.setCharacterAttributes(characters, tokens[x].length(), formatBlue, true);
使用一套规则。
当他们在characters
定义的位置与位置characters
+ tokens[x].length()
之间进行编辑时,会以formatBlue
样式显示。
但是,在用户下次按下我的“颜色代码”按钮之前,我希望它是黑色的。
简而言之:理想的效果是输入的所有内容都应该是黑色的,直到程序的措辞和颜色不同为止。
到目前为止,我所拥有的最佳解决方案是检测插入符号何时改变位置,然后执行:
setLogicalStyle(textArea.getCaretPosition(), formatBlack)
任何更好的建议都将受到赞赏。
答案 0 :(得分:1)
所需的效果是输入的所有内容应始终为黑色
您可以尝试使用DocumentFilter。如果要插入的文本不包含属性,则指定默认的黑色属性。
阅读Implementing a Document Filter上的Swing教程中的部分以获取更多信息。
答案 1 :(得分:1)
您可以从JEditorPane获取EditorKit。它是StyledEditorKit实例。因此,您可以从工具包中获取InputAtributes并删除所有属性。因此,所有输入都将使用空的AttributeSet。