GWT IntegerBox 包装和事件

GWT IntegerBox wrap and events

html 的一个小节被加载到框架 (IframeElement) 中:

<tr>
    <td>Desc</td>
    <td><select id="descfont" class="fontname"></select></td>
    <td><input id="descbold" type="checkbox"></td>
    <td><input id="descitalic" type="checkbox"></td>
    <td><input id="descsize" type="number" class="numberbox"></td>
    <td><canvas id="desccolour" class="colorcanvas"></canvas></td>
</tr>

我可以包装 select 框、复选框、按钮、文本框和画布。但是我找不到用 "number".

类型包装输入框的方法
final ListBox dfont = ListBox.wrap(doc.getElementById("descfont"));
final SimpleCheckBox dbold = SimpleCheckBox.wrap(doc.getElementById("descbold"));
final SimpleCheckBox ditalic = SimpleCheckBox.wrap(doc.getElementById("descitalic"));
final Canvas dcanvas = Canvas.wrap((CanvasElement)doc.getElementById("desccolour"));

我试过的这个或类似的术语不起作用:

final ValueBox<Object> title_size = IntegerBox.wrap(doc.getElementById("descsize"),
    IntegerRenderer.instance(), IntegerParser.instance());

'something' = ValueBox.wrap(doc.getElementById("descsize"), null, null);

有人知道怎么做吗?

除此之外,我还可以在文本框上使用 onBlur() 事件。 IntegerBox 需要哪些事件?

非常感谢...

编辑:在片段中将标题大小更改为 descsize。

在遵循 Eclipse 的错误建议后,我终于设法让它工作,而且不需要 onBlur 事件处理程序。

final ValueBox<Integer> title_size = IntegerBox.wrap(doc.getElementById("titlesize"),       
    IntegerRenderer.instance(), IntegerParser.instance());

title_size.setSelectionRange(0, 200); // hoping this works now
title_size.setValue(vscroll.desc_size);

title_size.addChangeHandler(new ChangeHandler() {

    @Override
    public void onChange(ChangeEvent event) {
        log.info("New value: " + title_size.getValue());
    }
});

显然现在我只需要添加验证码并说明错误输入。