2016-01-27 1 views
0

В Wicket 6 класс FloatConverter имел метод setNumberFormat.Wicket FloatConverter setNumberFormat

В Wicket 7 больше не существует.

Я использую его, чтобы изменить предел по умолчанию в 3 десятичных знака для текстового поля. Есть ли другой способ сделать это?

ответ

3

Используйте AbstractDecimalConverter#newNumberFormat(Locale) для этого. Вы можете переопределить его и настроить специфику.

public class MyFloatConverter extends FloatConverter { 
    @Override protected NumberFormat newNumberFormat(final Locale locale) 
    { 
     NumberFormat nf = NumberFormat.getInstance(locale); 
     nf.setXyz(); // <<- customize the NumberFormat here 
     return nf; 
    } 
} 

Вы можете установить этот конвертер, чтобы быть по умолчанию один в YourApplication.java:

@Override protected ConverterLocator newConverterLocator() 
    { 
     ConverterLocator cl = super.newConverterLocator(); 
     cl.set(Float.class, new MyFloatConverter()); 
     return cl; 
    } 
} 

или в конкретном компоненте путем переопределения его метода #getConverter(Class);

+0

Можете ли вы дать краткий пример. – NeillR

+0

Добавлен пример кода. –

0

Я использовал свой MyFloatConverter как это для моего TextField:

@Override 
public final IConverter getConverter(Class type) { 
    FloatConverter fc = new MyFloatConverter(); 
    return fc; 
} 
Смежные вопросы