> Markdown version of [Creating A Text Field For Integer Only Input When Not Using A Data Source](https://vaadin.com/docs/v7/framework/articles/CreatingATextFieldForIntegerOnlyInputWhenNotUsingADataSource). Section index: [llms.txt](https://vaadin.com/docs/v7/framework/llms.txt)

# <a id="creating-a-textfield-for-integer-only-input-when-not-using-a-data-source"></a>Creating a TextField for integer only input when not using a data source

A `TextField` is a component that always has a value of type `String`. By adding a converter to a field, the field will automatically validate that the entered value can be converted and it will provide the converted value using the `getConvertedValue()` method.

```java
final TextField textField = new TextField("Text field");
textField.setConverter(Integer.class);

Button submitButton = new Button("Submit value", new ClickListener() {
  public void buttonClick(ClickEvent event) {
    String uiValue = textField.getValue();
    try {
      Integer convertedValue = (Integer) textField
          .getConvertedValue();
      Notification.show(
          "UI value (String): " + uiValue
          + "<br />Converted value (Integer): "
          + convertedValue);
    } catch (ConversionException e) {
      Notification.show(
          "Could not convert value: " + uiValue);
    }
  }
});

addComponent(new Label("Text field type: " + textField.getType()));
addComponent(new Label("Converted text field type: "
    + textField.getConverter().getModelType()));
addComponent(textField);
addComponent(submitButton);
```

With this example, entering a number and pressing the button causes the value of the `TextField` to be a `String` while the converted value will be an `Integer` representing the same value. If e.g. a letter is entered to the field and the button is pressed, the validation will fail. This causes a notice to be displayed for the field and an exception to be thrown from `getConvertedValue()`.
