为什么JFormattedTextField是邪恶的?[已关闭]

2022-09-02 20:46:46

在这个问题中,有没有办法只接受JTextField中的数值?其中一个答案表明JFormattedTextField有问题。

我还没有使用它,但是有人可以扩展(或不同意)这个类的问题吗?


答案 1

JFormattedTextField因为可用性差而邪恶。例如,如果文本字段应该只能接受整数值,则将允许任何旧的垃圾,然后在焦点丢失时抱怨。更糟糕的是,当焦点丢失时,它具有一系列可配置的行为(这清楚地表明它们都不是正确的选择)。JFormattedTextField

它还具有“k3wl”格式化程序选择。它似乎与文档的交互也很差(它尝试安装 一个 ,但这不是界面的一部分)。DocumentFilterDocument


答案 2

我承认JFormattedTextField不是最容易使用的类,是的,它确实存在问题,但像大多数组件一样,它在某些方面做得合理,而在其他方面做得很糟糕。

实际上,它允许您在使用掩码格式化程序时键入数据时编辑整数值。因此,对于简单的任务,它可以是有效的。

编辑数据是一项复杂的任务。有时,您需要在输入数据时对其进行编辑(在检查整数值的情况下)。有时,您需要在输入数据后对其进行编辑(在验证日期的情况下)。然后,您当然需要决定如何处理无效数据。

在执行非平凡的任务时,可以有一定数量的参数配置。它们可能并不总是按照您希望的方式或期望的方式工作,因此您确实需要进行实验以找出何时可以/应该使用此组件。


推荐