JFormattedTextField显示逗号并接受小数点

时间:2018-11-24 21:26:54

标签: java swing number-formatting

我正在使用JFormattedTextField输入带小数点的数字。以下是格式化程序。

public static AbstractFormatterFactory createFormatter() {
    final NumberFormat format = NumberFormat.getInstance();
    final InternationalFormatter formatter = new InternationalFormatter(format);
    formatter.setValueClass(Double.class);
    formatter.setAllowsInvalid(false);
    formatter.setOverwriteMode(true);
    formatter.setCommitsOnValidEdit(true);
    return new DefaultFormatterFactory(formatter, formatter, formatter);
}

使用setAllowsInvalid(false)时,会被忽略,但是会根据需要每3位添加逗号。对于setAllowsInvalid(true),接受句点,但是直到焦点更改,逗号才会显示。

是否可以同时具有两种行为?

1 个答案:

答案 0 :(得分:0)

我相信JFormattedTextField在编辑和显示时会采用不同的格式,这是我问题的根源。我找到了一篇很好的(如果不是很旧的话)有关使用JFormattedTextField的文章,该文章将所有内容很好地组合在一起。 http://www.drdobbs.com/jvm/java-better-interfaces-via-jformattedtex/224700979