DocumentFilter:为什么调用replace()而不调用insertString()?

时间:2014-05-07 18:25:01

标签: java swing jtextcomponent documentfilter

我已经实现了DocumentFilter子类,当我在JTextComponent中输入文本时,会调用过滤器的replace()方法,而不是insertString() (从未被调用过)。知道为什么会这样吗?

1 个答案:

答案 0 :(得分:6)

使用Document.insertString(...)方法直接更新Document时调用insertString(...)方法。

当用户输入文本或用户调用与文本字段关联的动作(剪切,粘贴)时,通过View的方法(即JTextField)更新Document时,将调用replace(...)方法。 / p>

我想更容易总是更换,然后让替换逻辑检查是否需要删除/插入。