JFormattedTextField中未清除的值

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)

mKo*_*bel 6

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.可以nullJFormattedTextFieldwith 设置值Formatter,但我建议使用适当的混凝土值Formatter,例如NumberFormatter设置setValue(0.00)

4.为了更好地帮助发布SSCCE,否则您的问题可能无法解决,