我已經使用JFormDesigner創建了一個表單,並且需要在用戶輸入4位數或更多的數字時自動添加1000個分隔符。我嘗試了以下代碼,但它並未實時添加分隔符(,)。如何實時添加1000個分離器?
int no=Integer.parseInt(textField1.getText());
String str = String.format("%,d", no);
textField1.setText(str);
任何幫助,將不勝感激。
我已經使用JFormDesigner創建了一個表單,並且需要在用戶輸入4位數或更多的數字時自動添加1000個分隔符。我嘗試了以下代碼,但它並未實時添加分隔符(,)。如何實時添加1000個分離器?
int no=Integer.parseInt(textField1.getText());
String str = String.format("%,d", no);
textField1.setText(str);
任何幫助,將不勝感激。
既然你提到它不會實時添加分隔符,那麼我懷疑你點擊一個按鈕或類似的東西來執行那個代碼。
您需要做的是捕獲關鍵筆畫事件並相應地修改文本。 This以前的SO帖子應該指出你正確的方向。
您應該使用DecimalFormat
類增加,
的數量。像
DecimalFormat df=new DecimalFormat("###,###");
int no=Integer.parseInt(textField1.getText());
String str = df.format(no);
textField1.setText(str);
感謝Masud.Where我應該把上面的代碼實時顯示它?我是新來的java,無法弄清楚。我需要顯示1000爲1000。 – user2723764
@ user2723764您應該在textField1上顯示它。看看我編輯的答案。 – Masudul
鞦韆已格式化文本字段用於此目的 - 我認爲你正在尋找JFormattedTextField
我想你可以使用這個
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等(點) – Apostolos
請發佈您的預期輸出,因爲1000分隔符不清楚。 – Prateek
@peeskillet:根據不同的文化,它可以是','或'.'。因此,100萬可以寫成'en-US'中的'1,000,000',或者'it-IT'中的'1.000.000'。 – npinti