【发布时间】:2018-11-24 21:26:53
【问题描述】:
我使用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) 句点,但在焦点更改之前不会显示逗号。
有没有办法同时拥有这两种行为?
【问题讨论】:
-
可以从 JFormattedTextField 创建自定义扩展
-
我有,但是你建议扩展类做/覆盖什么?
-
是的,您可以重写该方法并创建类似的逻辑以同时支持这两种方法..
-
你指的方法是什么?允许无效的检查在格式化程序中并使用私有变量。
标签: java swing number-formatting