Заменить десятичный разделитель GXT Numberfield на запятую
Можно ли изменить десятичный разделитель GXT Numberfield с точки на запятую? Я искал и много пробовал, но не могу найти решение.
При заполнении поля формы типа "FloatField" с числом, подобным 67,8 - значение поля переключается на 67,8. Таким образом, поле принимает входные данные с запятыми, но NumberFormat для его отображения просто неверен. Как я могу это изменить?
Заранее спасибо, Дэвид.
1 ответ
Хорошо, никто не получил ответа, но у моего коллеги была такая же проблема, и я решил ее. Итак, если кто-то в будущем будет искать его, вот ответ:
Вы можете создать свой собственный класс FloatField и переопределить поведение. Класс (в простейшем виде) будет выглядеть так:
package org.example.myforms
public class FloatField extends NumberField<Float> {
/**
* Constructor
*/
public FloatField() {
super(new NumberPropertyEditor.FloatPropertyEditor());
init();
}
private void init () {
// disply float values with comma as decimal seperator
String pattern = "0.0;";
super.setFormat(NumberFormat.getFormat(pattern));
}
}
Чтобы использовать это поле, например, в вашем *.ui.xml, вы должны импортировать myform
пакет:
<ui:UiBinder
...
xmlns:myform="urn:import:org.example.myforms"
>
Тогда вы можете использовать это:
<myform:FloatField ui:field="field_1" allowDecimals="true"/>