我正在使用JFormattedTextField,当我尝试删除字段中的值时,它会自动恢复以前的值。 这种行为的原因是什么?如何阻止它恢复价值?
这是JFormattedtextField的代码。
jFormattedTextField2 = new javax.swing.JFormattedTextField(new DecimalFormat("###,###.##"));
答案 0 :(得分:4)
这是因为JFormattedTextField
允许配置使用setFocusLostBehavior
方法丢失焦点时应采取的操作。
这些是行动。
描述
JFormattedTextField.REVERT
- 恢复显示以匹配getValue的显示,可能会丢失当前的编辑。
JFormattedTextField.COMMIT
- 提交当前值。如果正在编辑的值不被AbstractFormatter视为合法值 也就是说,抛出ParseException,那么值不会改变, 然后编辑的值将持续存在。
JFormattedTextField.COMMIT_OR_REVERT
- 与COMMIT类似,但如果值不合法,则表现得像REVERT。
JFormattedTextField.PERSIST
- 什么也不做,不要获取新的AbstractFormatter,也不要更新值。
****默认为JFormattedTextField.COMMIT_OR_REVERT
,因此当您输入无效值时,它会被还原并且您获得之前的值
一致的状态**