我正在制作文字处理程序,如果用户按下' a' (' a'仅用于演示,我有一个特殊字符列表),它会用一个字符串替换插入符号左边的一些字符。
我试过" setText"方法,但它被替换,然后移动插入符号和文本组件滚动到最后,我想要的是插入符号不移动到其他地方,文本组件不滚动到最后,我怎么能编码做到这一点(我压倒一切processKeyEvent)?
任何帮助都将不胜感激。
答案 0 :(得分:0)
尝试使用文档过滤器:
JTextArea textArea = new JTextArea();
((AbstractDocument) textArea.getDocument()).setDocumentFilter(new DocumentFilter() {
@Override
public void replace(FilterBypass fb, int offset, int length, String text, AttributeSet attrs)
throws BadLocationException {
if ("a".equals(text)) {
text = "B";
}
super.replace(fb, offset, length, text, attrs);
}
});