Java 如何实时添加1000个分离器?
我使用JFormDesigner创建了一个表单,当用户键入4位或更多数字时,需要自动添加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); 任何帮助都将不胜感激。因为您提到它不会实时添加分隔符,那么我怀疑您是在点击按钮或类似的东西后执行该代码的 您需要做的是捕获
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上显示它。看看我编辑过的答案。