Sej*_*nus 4 java swing localization number-formatting
Java使用小数周期,例如1/2 = 0.5
有没有办法让它使用逗号代替,如1/2 = 0,5?而不是使用逗号成千上万(如十万= 100,000)但使用空格(100 000)?
说到输出,我想我可以使用各种字符串格式函数,但问题是输入(JTable).有些列需要Double格式,因此用户必须输入类似45.5的内容,并且在这些部分中它们用于45,5 :)提前感谢
更新:
我尝试使用myTable.setDefaultLocale(Locale.Germany); 但它没有用.我也做了Locale.setDefault(Locale.Germany); @ main函数并且它确实工作但是以相当愚蠢的方式:当单元格处于编辑模式时,您必须正常输入点,即45.5但是在您按Enter键确认更改后,它将显示为逗号:45,5.我的意思是它只使用逗号用于显示目的,但是当编辑它仍然是相同的ol'点.
有没有办法解决它而不编写自定义表模型?
看一下区域设置的格式化和解析数字:
Run Code Online (Sandbox Code Playgroud)// Format for CANADA locale Locale locale = Locale.CANADA; String string = NumberFormat.getNumberInstance(locale).format(-1234.56); // -1,234.56 // Format for GERMAN locale locale = Locale.GERMAN; string = NumberFormat.getNumberInstance(locale).format(-1234.56); // -1.234,56 // Format for the default locale string = NumberFormat.getNumberInstance().format(-1234.56); // Parse a GERMAN number try { Number number = NumberFormat.getNumberInstance(locale.GERMAN).parse("-1.234,56"); if (number instanceof Long) { // Long value } else { // Double value } } catch (ParseException e) { }