Ext-gwt (gxt) TextField getFieldValue () проблема - PullRequest
0 голосов
/ 04 августа 2011

У меня есть TextField с типом данных Integer, поэтому я пытаюсь получить getFieldValue () и записать его в поле Integer. Так что во время выполнения у меня есть ошибка здесь:

TextField<Integer> priceField = new  TextField<Integer>();
Integer newPriceFieldValue = priceField.getValue(); //here is an error in runtime

Так что я не могу понять, в чем проблема - procField.getValue () должен быть Integer, почему строка? Может мне стоит другой тип поля?

java.lang.ClassCastException: java.lang.String не может быть приведен к java.lang.Integer в ru.braginini.client.ProductForm $ 2.componentSelected (ProductForm.java:64) в ru.braginini.client.ProductForm $ 2.componentSelected (ProductForm.java:1)

Ответы [ 2 ]

3 голосов
/ 04 августа 2011

Если вы ожидаете, что в этом поле будут использоваться только цифры NumberField может быть лучшим выбором.

    NumberField field = new NumberField();
    field.setPropertyEditorType(Integer.class);

Это обеспечит ввод только чисел и избавит вас от приведения и обработки ошибок при вызове getValue ().

0 голосов
/ 04 августа 2011

getValue возвращает строку! Вы хотите присвоить эту строку целому числу, которое вызывает исключение CastException (как это было бы в любом языке программирования с типом.

Попробуйте

Integer newPriceFieldValue = Integer.parseInt(priceField.getValue());

С уважением, Stefan

...