问题: 我想知道是否可以从DocumentFilter中获取JTextfield类型? 我已经阅读了java文档并搜索了很多但没有找到任何信息。
需要: 我在2个JTextfields上设置了相同的DocumentFilter。当事件发生时,在DocumentFilter的“替换”方法中,我想知道哪个文本字段导致事件的操作。
用例:
我有大约15个texfields(将来可能会增加),我想要对所有这些都进行单独检查:
- 输入的最大文本长度
- 只能输入某些字符(对于所有文本字段都是相同的)
例如:textfield1最多可以使用10个字符,但textfield2最多可以使用5个字符。
到目前为止我做了什么:
我为每个文本字段创建了单独的过滤器,这会导致大量冗余代码并增加处理的复杂性,以备将来使用。
期待任何帮助。 : - )
答案 0 :(得分:1)
好的,现在您的需求更加明确,但是,您再次无法(并且不应该)检查您在DocumentFilter
内输入的文本字段,以决定在{{1}中做什么1}}方法。
可能的解决方案:创建自己的replace ()
类,传递您需要的所有参数(最大文本长度,可能是禁用字符数组,或其他任何内容)。
您的所有文本字段都将具有不同的DocumentFilter
实例,并设置参数以满足您的需求。通过这种方式,您将拥有一个没有简化代码的干净解决方案。
例如:
DocumentFilter