我已经实现了DocumentFilter
子类,当我在JTextComponent
中输入文本时,会调用过滤器的replace()
方法,而不是insertString()
(从未被调用过)。知道为什么会这样吗?
答案 0 :(得分:6)
使用Document.insertString(...)方法直接更新Document时调用insertString(...)
方法。
当用户输入文本或用户调用与文本字段关联的动作(剪切,粘贴)时,通过View的方法(即JTextField)更新Document时,将调用replace(...)
方法。 / p>
我想更容易总是更换,然后让替换逻辑检查是否需要删除/插入。