我认为这必须是代码中的一个简单错误或我的误解,但我无法获得DocumentFilter
来检测insertString
事件。下面是一个用于大写字母的简单过滤器,但这并不像insertString(..)
方法似乎永远不会被调用那样重要!
为什么insertString(..)
的{{1}}方法没有被调用?
过滤器应用于顶部的DocumentFilter
。每次调用JTextField
时,都应将信息附加到insertString(..)
中的JTextArea
。目前,文本字段中没有任何操作可以将文本附加到文本区域。
CENTER
答案 0 :(得分:7)
文本组件使用replaceSelection(...)
方法,该方法将调用replace(...)
的{{1}}方法,该方法将调用AbstractDocument
的{{1}}方法
replace(...)
方法仅在您使用DocumentFilter
方法直接更新insertString(...)
时调用。
所以实际上你需要覆盖两种方法以确保完成大写转换。