Java 为什么JFormattedTextField恢复以前的值?

Java 为什么JFormattedTextField恢复以前的值?,java,swing,jtextfield,jformattedtextfield,Java,Swing,Jtextfield,Jformattedtextfield,我使用的是JFormattedTextField,当我尝试删除字段中的值时,它会自动恢复以前的值。 这种行为的原因是什么?我如何阻止它恢复价值 这是JFormattedtextField的代码 jFormattedTextField2 = new javax.swing.JFormattedTextField(new DecimalFormat("###,###.##")); 这是因为允许使用setFocusLostBehavior方法配置当焦点丢失时应采取的操作 这些就是行动 描述 JFor

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

这是JFormattedtextField的代码

jFormattedTextField2 = new javax.swing.JFormattedTextField(new DecimalFormat("###,###.##"));
这是因为允许使用
setFocusLostBehavior
方法配置当焦点丢失时应采取的操作

这些就是行动

描述

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

JFormattedTextField.COMMIT
-提交当前值。如果AbstractFormatter不认为正在编辑的值是合法值 也就是说,如果抛出ParseException,那么该值不会更改, 然后编辑的值将保持不变

JFormattedTextField.COMMIT\u或\u REVERT
-类似于COMMIT,但如果该值不合法,则其行为类似于REVERT

JFormattedTextField.PERSIST
-不执行任何操作,不获取新的AbstractFormatter,也不更新该值

****默认值为
JFormattedTextField.COMMIT\u或\u REVERT
,因此当您输入无效值时,它将被还原,并且您将获得上一个值 一致状态**

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

这些就是行动

描述

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

JFormattedTextField.COMMIT
-提交当前值。如果AbstractFormatter不认为正在编辑的值是合法值 也就是说,如果抛出ParseException,那么该值不会更改, 然后编辑的值将保持不变

JFormattedTextField.COMMIT\u或\u REVERT
-类似于COMMIT,但如果该值不合法,则其行为类似于REVERT

JFormattedTextField.PERSIST
-不执行任何操作,不获取新的AbstractFormatter,也不更新该值

****默认值为
JFormattedTextField.COMMIT\u或\u REVERT
,因此当您输入无效值时,它将被还原,并且您将获得上一个值
一致状态**

请向我们显示您的代码。它究竟何时恢复以前的值?当您将制表符从它移开(或以其他方式更改焦点)时?当焦点移开(光标消失)时,它会更改。请向我们显示您的代码。它究竟何时恢复以前的值?当您用tab键离开它(或以其他方式改变焦点)时?当焦点离开(光标消失)时,它会改变。