【问题标题】:How to add 1000 seperator in real time? [duplicate]如何实时添加1000个分隔符? [复制]
【发布时间】:2013-11-01 06:35:57
【问题描述】:

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

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

任何帮助将不胜感激。

【问题讨论】:

  • @peeskillet 我猜他的意思是 1.000 2.040 等(点)
  • 请也发布您的预期输出,因为 1000 分隔符不清楚。
  • @peeskillet:根据文化,它可以是,.。所以一百万可以写成1,000,000 in en-US 或者写成1.000.000 in it-IT
  • 将 JFormattedTextField 与数字格式化程序一起使用,

标签: java swing jform-designer


【解决方案1】:

既然你提到它不会实时添加分隔符,那么我怀疑你是在单击按钮或类似的东西时执行该代码。

您需要做的是捕获击键事件并相应地修改文本。 This 之前的 SO 帖子应该为您指明正确的方向。

【讨论】:

    【解决方案2】:

    Swing 已为此目的格式化文本字段 - 我认为您正在寻找 JFormattedTextField

    【讨论】:

      【解决方案3】:

      我猜你可以用这个

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

          您应该使用DecimalFormat 类在数字中添加,。喜欢

           DecimalFormat df=new DecimalFormat("###,###");     
          
           int no=Integer.parseInt(textField1.getText());
           String str = df.format(no);
           textField1.setText(str);
          

          【讨论】:

          • 谢谢 Masud。我应该把上面的代码放在哪里才能实时显示呢?我是java新手,不明白。我需要将 1000 显示为 1,000。
          • @user2723764 你应该在 textField1 上显示它。看看我编辑的答案。
          猜你喜欢
          • 1970-01-01
          • 2016-04-04
          • 2019-03-10
          • 2013-08-20
          • 1970-01-01
          • 2021-01-04
          • 1970-01-01
          • 1970-01-01
          • 2019-08-30
          相关资源
          最近更新 更多