我正在使用NumberField和NumberFormat。 如何在不更改我的語言環境的情況下更改NumberConstants.decimalSeparator()值?比如我想要「。」或「,」作爲所有語言環境的小數點分隔符。 是否有可能創建自定義屬性文件NumberConstants_bla.properties和強制gxt使用它而不是標準的NumberConstants_ru_RU.properties或NumberConstants_en_US.properties(取決於當前的語言環境)?我應該在哪裏放置這個文件?更改NumberConstants.decimalSeparator()值
2
A
回答
1
在Java中,您可以使用DecimalFormatSymbols來設置小數點分隔符。
// default symbols for the locale
DecimalFormatSymbols decimalFormatSymbols = DecimalFormatSymbols.getInstance();
// set your required separator
decimalFormatSymbols.setDecimalSeparator(',');
// create a decimal format and set your symbols
DecimalFormat format = new DecimalFormat();
format.setDecimalFormatSymbols(decimalFormatSymbols);
0
您可以創建自己的NumberConstants(在你把你想要的小數點分隔符),然後用它來創建自己的NumberFormat。
我自己NumberConstants的例子:
import com.google.gwt.i18n.client.constants.NumberConstants;
public class MyNumberConstants implements NumberConstants {
@Override
public String notANumber() {
return "NaN";
}
@Override
public String currencyPattern() {
return "#,##0.00\\u00A0\\u00A4";
}
@Override
public String decimalPattern() {
return "#,##0.###";
}
@Override
public String decimalSeparator() {
return ".";
}
@Override
public String defCurrencyCode() {
return "EUR";
}
@Override
public String exponentialSymbol() {
return "e";
}
@Override
public String globalCurrencyPattern() {
return "#,##0.00\\u00A0\\u00A4";
}
@Override
public String groupingSeparator() {
return "\\u00A0";
}
@Override
public String infinity() {
return "\u221E";
}
@Override
public String minusSign() {
return "-";
}
@Override
public String monetaryGroupingSeparator() {
return ",";
}
@Override
public String monetarySeparator() {
return "\\u00A0";
}
@Override
public String percent() {
return "%";
}
@Override
public String percentPattern() {
return "#,##0\\u00A0%";
}
@Override
public String perMill() {
return "\\u2030";
}
@Override
public String plusSign() {
return "+";
}
@Override
public String scientificPattern() {
return "#E0";
}
@Override
public String simpleCurrencyPattern() {
return "#,##0.00\\u00A0\\u00A4";
}
@Override
public String zeroDigit() {
return "0";
}
}
MyFormat的例子:
public class MyFormat extends NumberFormat{
public MyFormat(){
super(new MyNumberConstants(),"0.0", CurrencyList.get().getDefault(),true);
}
}
警告:這是一個醜陋的解決辦法,並可能導致對國際化的問題。我使用它只是爲了格式化一些我認爲以相同方式展示給每個人的維度。
相關問題
- 1. 更改值值
- 2. 更改EditText Box值更改微調值
- 3. 更改輸入值更改標籤值
- 4. 更改值
- 5. SQL更改值
- 6. 更改值
- 7. 更改值
- 8. 更改Request.QueryString值
- 9. 更改值
- 10. 更改max_heap_table_size值?
- 11. 更改值
- 12. wxTextCtrl更改值
- 13. 更改值
- 14. 更改列值?
- 15. 更改域值
- 16. 更改標籤更改DropDownListFor值
- 17. 更改按鈕值
- 18. Javascript內更改值
- 19. 更改屬性值
- 20. 如何更改值
- 21. jQuery更改表值
- 22. 更改返回值
- 23. 更改NSComboBox getGet值
- 24. Excel表值更改
- 25. 更改布爾值
- 26. MySQL更改SUM值
- 27. 更改DateTimePicker的值
- 28. 更改道具值
- 29. 更改String.xml的值
- 30. 更改選項值
Infortunatly它不是com.google.gwt.i18n.client.NumberFormat的選項:( – sandlex 2009-06-01 15:09:14