具有十进制问题的GWT中的TextItem

时间:2010-07-09 10:34:23

标签: java gwt

我认为这可能很简单,但却吞噬了我的时间。

我在我的JAVA应用程序中使用TextItem在GWT中获取用户的价格输入。

我试图停止在文本项上允许多个点(“。”)。我的所有运动都失败了。 我正在使用正则表达式;尝试处理TextItem的BlurHandler事件上的关键字符都拖了我一个错误。

有人可以帮我实现上述目标吗? 先感谢您。

1 个答案:

答案 0 :(得分:0)

我使用的是这样的东西:

amount = new TextBox();
amount.setVisibleLength(10);
amount.addKeyPressHandler(new KeyPressHandler() {
    public void onKeyPress(KeyPressEvent event) {
       if (!checkNumeric(amount.getText(), event.getCharCode()))
          amount.cancelKey();
       }
});


public boolean checkNumeric(String text, char keycode) {
    if (!Character.isDigit(keycode) && keycode != '.' && keycode != '-'
       && keycode != KeyCodes.KEY_BACKSPACE
       && keycode != KeyCodes.KEY_TAB) {
       return false;
    }
    if (keycode == '-') {
        if (!text.isEmpty()) {
            return false;
        }
    }
    if (keycode == '.') {
        if (text.contains(".")) {
            return false;
        }
    }

    return true;
}