如何从DocumentFilter

时间:2017-11-02 10:02:42

标签: java swing jtextfield documentfilter

问题: 我想知道是否可以从DocumentFilter中获取JTextfield类型? 我已经阅读了java文档并搜索了很多但没有找到任何信息。

需要: 我在2个JTextfields上设置了相同的DocumentFilter。当事件发生时,在DocumentFilter的“替换”方法中,我想知道哪个文本字段导致事件的操作。

用例: 我有大约15个texfields(将来可能会增加),我想要对所有这些都进行单独检查:
- 输入的最大文本长度
- 只能输入某些字符(对于所有文本字段都是相同的)
例如:textfield1最多可以使用10个字符,但textfield2最多可以使用5个字符。

到目前为止我做了什么:
我为每个文本字段创建了单独的过滤器,这会导致大量冗余代码并增加处理的复杂性,以备将来使用。

期待任何帮助。 : - )

1 个答案:

答案 0 :(得分:1)

好的,现在您的需求更加明确,但是,您再次无法(并且不应该)检查您在DocumentFilter内输入的文本字段,以决定在{{1}中做什么1}}方法。

可能的解决方案:创建自己的replace ()类,传递您需要的所有参数(最大文本长度,可能是禁用字符数组,或其他任何内容)。 您的所有文本字段都将具有不同的DocumentFilter实例,并设置参数以满足您的需求。通过这种方式,您将拥有一个没有简化代码的干净解决方案。

例如:

DocumentFilter