Vaadin TextBox:仅限数字和小数。

Vaadin TextBox: Numbers and decimal only.

如果提交的不是数字 and/or 小数位,我如何得到一个文本框给我一个错误?

您需要向文本字段添加验证器。

textField.addValidator(new Validator());

Vaadin 中没有检查值是否为数字的验证器,因此您需要创建一个自定义验证器:

private class MyValidator implements Validator {
    @Override
    public void validate(Object value)
            throws InvalidValueException {
        if (!(value instanceof Integer &&
                (value instanceof Double)) {
            throw new InvalidValueException("The value is not a number");
        }     
    }
}

现在您可以将自定义验证器添加到您的字段中:

textField.addValidator(new MyValidator());

关于验证器的更多信息here

private class MyValidator implements Validator {
    @Override
    public void validate(Object value) throws InvalidValueException {
         try {
              // new Integer(text);
                new Double(value.toString());
            } catch (NumberFormatException e) {
              throw new InvalidValueException("The value is not a number");
            }
    }
}