1

我正在使用 JFormattedTextField,当我尝试删除字段中的值时,它会自动恢复以前的值。这种行为的原因是什么,我怎样才能阻止它恢复价值?

这是 JFormattedtextField 的代码。

jFormattedTextField2 = new javax.swing.JFormattedTextField(new DecimalFormat("###,###.##"));
4

1 回答 1

4

发生这种情况是因为允许使用该方法JFormattedTextField配置当焦点丢失时应采取的操作。setFocusLostBehavior

这些是行动。

描述

JFormattedTextField.REVERT- 恢复显示以匹配 getValue,可能会丢失当前编辑。

JFormattedTextField.COMMIT- 提交当前值。如果正在编辑的值不被 AbstractFormatter 视为合法值,即抛出 ParseException,则该值不会更改,然后编辑的值将保持不变。

JFormattedTextField.COMMIT_OR_REVERT- 类似于 COMMIT,但如果值不合法,则表现得像 REVERT。

JFormattedTextField.PERSIST- 什么都不做,不获取新的 AbstractFormatter,也不更新值。

****默认是JFormattedTextField.COMMIT_OR_REVERT这样当你输入一个无效的值时,它会被还原,你会得到以前的一致状态**

于 2013-06-14T23:22:19.700 回答