gpt4 book ai didi

java - JSpinner 数字编辑器

转载 作者:行者123 更新时间:2023-12-01 10:37:02 25 4
gpt4 key购买 nike

下面这段代码实际上做了什么,

 //Make the year be formatted without a thousands separator.
spinner.setEditor(new JSpinner.NumberEditor(spinner, "#"));

为什么需要这样做来消除 JSpinner numberModel 中的逗号。

我是java新手,请简单解释一下。

最佳答案

JSpinner.NumberEditor 构造函数的第二个参数是十进制格式。您应该阅读DecimalFormat's documentation真正理解它是如何工作的,但在本例中,它是最简单的格式 "#" ,仅表示“所有数字都放在这里”。由于它不包含任何分隔符,因此它们不会出现在格式化文本中。如果您需要它们,您可以指定类似 "### ###" (表示由空格分隔的三位数字组)。

阅读the official tutorial on formats也是个好主意。 (感谢 Ilya Lapitan 的评论。)

JSpinner 使用的默认格式取决于区域设置,这些设置通常由您的操作系统和/或 Java 设置决定。要动态确定格式,您可以执行类似的操作

if (spinner.getEditor() instanceof JSpinner.NumberEditor) {
JSpinner.NumberEditor numberEditor = (JSpinner.NumberEditor) spinner.getEditor();
System.out.println(numberEditor.getFormat().toPattern());
}

在我的系统(俄语操作系统区域设置,但美国英语 NetBeans)上,它打印 #,##0.###,这意味着:

  • #,##0 - 将数字按三位分组,用逗号分隔组,并保留至少一位数字(用最后一个 0 表示,而不是 #);
  • .### - 四舍五入到小数点后三位数字(显示为 .)。

如果 instanceof 运算符的计算结果为 false,则意味着您的微调器未设置为显示数字或安装了自定义编辑器。

关于java - JSpinner 数字编辑器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34627998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com