GWT IntegerBox包装和事件

时间:2017-06-06 09:28:04

标签: gwt

html的一个子部分,它被加载到一个Frame(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>

我可以包装选择框,复选框,按钮,文本框和画布。但我找不到一种方法来包装输入框的类型为&#34;数字&#34;。

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。

1 个答案:

答案 0 :(得分:0)

在遵循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());
    }
});

显然现在我只需要为错误输入添加验证码和帐户。