Java 如何实时添加1000个分离器?

Java 如何实时添加1000个分离器?,java,swing,jform-designer,Java,Swing,Jform Designer,我使用JFormDesigner创建了一个表单,当用户键入4位或更多数字时,需要自动添加1000个分隔符。我尝试了以下代码,但它没有实时添加分隔符(,) int no=Integer.parseInt(textField1.getText()); String str = String.format("%,d", no); textField1.setText(str); 任何帮助都将不胜感激。因为您提到它不会实时添加分隔符,那么我怀疑您是在点击按钮或类似的东西后执行该代码的 您需要做的是捕获

我使用JFormDesigner创建了一个表单,当用户键入4位或更多数字时,需要自动添加1000个分隔符。我尝试了以下代码,但它没有实时添加分隔符(,)

int no=Integer.parseInt(textField1.getText());
String str = String.format("%,d", no);
textField1.setText(str);

任何帮助都将不胜感激。

因为您提到它不会实时添加分隔符,那么我怀疑您是在点击按钮或类似的东西后执行该代码的


您需要做的是捕获关键笔划事件并相应地修改文本。上一篇SO帖子应该为您指明了正确的方向。

您应该使用
DecimalFormat
类来添加
。像

 DecimalFormat df=new DecimalFormat("###,###");     

 int no=Integer.parseInt(textField1.getText());
 String str = df.format(no);
 textField1.setText(str);

Swing为此目的格式化了文本字段-我想您正在寻找

我想您可以使用此

 DecimalFormat df = new DecimalFormat("#,###,##0.00");
 df.format(no);

要获取自定义分组分隔符(如空格),请执行以下操作:

DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance();
symbols.setGroupingSeparator(' ');

DecimalFormat formatter = new DecimalFormat("###,###.##", symbols);
System.out.println(formatter.format(bd.longValue()));

@peeskillet我猜他的意思是1.000 2.040等(点),请也发布您的预期输出,因为1000分隔符不清楚。@peeskillet:根据区域性,它可以是
。因此,一百万可以在
en US
中写为
1000000
,或者在
it
中写为
1.000.000
。使用带有数字格式化程序的JFormattedTextField,谢谢Masud。我应该把上面的代码放在哪里实时显示?我是java新手,不懂。我需要将1000显示为1000。@user2723764您应该在textField1上显示它。看看我编辑过的答案。