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

问题描述 投票:0回答:1

我已经实现了一个

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

java swing jtextcomponent documentfilter
1个回答
7
投票

当您使用 Document.insertString(...) 方法直接更新文档时,会调用

insertString(...)
方法。

当用户输入文本或用户调用与文本字段关联的操作(剪切、粘贴)时,通过视图(即 JTextField)的方法更新文档时,将调用

replace(...)
方法。

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

© www.soinside.com 2019 - 2024. All rights reserved.