Заменить десятичный разделитель 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"/>
Другие вопросы по тегам