Cha*_*han 5 java swing jformattedtextfield
我发现很难清楚JFormattedTextFields 的价值.怎么做?
我试过了
txtJFormattedTextField.setText("");
Run Code Online (Sandbox Code Playgroud)
但是当焦点再次失去时,我清除的价值就会出现.我阅读了有关此问题的API.
我为日期字段创建JTFormattedTextFields的工厂如下 -
public static JFormattedTextField createDateField() {
MaskFormatter maskFormatter = null;
try {
maskFormatter = new MaskFormatter("##/##/####");
} catch (ParseException e) {
e.printStackTrace();
}
JFormattedTextField formattedTextField = new JFormattedTextField(
maskFormatter);
SwingHelper.installDateValidation((AbstractDocument) formattedTextField
.getDocument());
formattedTextField.setColumns(10);
return formattedTextField;
}
Run Code Online (Sandbox Code Playgroud)
试过了
try {
((JFormattedTextField) txtSigninDate).commitEdit();
} catch (ParseException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
结果是一个例外 - 下面是异常跟踪.
java.text.ParseException: stringToValue passed invalid value
at javax.swing.text.MaskFormatter.stringToValue(MaskFormatter.java:456)
at javax.swing.text.MaskFormatter.stringToValue(MaskFormatter.java:371)
at javax.swing.JFormattedTextField.commitEdit(JFormattedTextField.java:530)
at app.view.action.Authentication_Action.clearSigninFields(Authentication_Action.java:207)
at app.view.action.authentication.AuthenticationCommand.decorateSignout(AuthenticationCommand.java:285)
at app.view.action.authentication.AuthenticationCommand.executeSignin(AuthenticationCommand.java:122)
at app.view.action.Authentication_Action$2.actionPerformed(Authentication_Action.java:292)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
Run Code Online (Sandbox Code Playgroud)
1.使用的依赖 Formatter
JFormattedTextField.setValue(0.00);
Run Code Online (Sandbox Code Playgroud)
2.or MaskFormatter
JFormattedTextField.setValue(null);
Run Code Online (Sandbox Code Playgroud)
3.可以null为JFormattedTextFieldwith 设置值Formatter,但我建议使用适当的混凝土值Formatter,例如NumberFormatter设置setValue(0.00)
4.为了更好地帮助发布SSCCE,否则您的问题可能无法解决,