java - 如何将 CheckBox 转换为 HasChangeHandler

标签 java gwt checkbox

CheckBox faxGen = new CheckBox();
((HasChangeHandlers) faxGen).addChangeHandler(new ChangeHandler(){
    public void onChange(ChangeEvent event) 
    {
        CheckBox chkBox = (CheckBox) event.getSource(); 
        FixedWidthGrid parent = (FixedWidthGrid) chkBox.getParent();
        Iterator<Integer> selectedRows = parent.getSelectedRows().iterator();
        Integer rowIdx = selectedRows.hasNext() ? selectedRows.next() : -1;
        boolean checked = chkBox.getValue() == true ? true : false;
        setCheckBoxRowSelected(rowIdx, checked, true);
        if (checked){
            pagingScrollTable.getDataTable().getRowFormatter().setStylePrimaryName(rowIdx, "grid2-body-row-hover");
        }
        else
        {
            pagingScrollTable.getDataTable().getRowFormatter().removeStyleName(rowIdx, "grid2-body-row-hover");
            pagingScrollTable.getDataTable().getRowFormatter().removeStyleName(rowIdx, "selected");
        }
        pagingScrollTable.getDataTable().getRowFormatter().removeStyleName(rowIdx, "highlighted selected");
    }
});

最佳答案

您无法将 CheckBox 转换为 HasChangeHandlers 实例,因为它没有实现该接口(interface)。 CheckBox 实现了 HasValueChangeHandlers,因此您可以根据需要进行强制转换。然而,从这段代码来看,转换的值尚不清楚。由于您知道 faxGen 是一个 CheckBox(您在添加处理程序的行上方声明并实例化它),因此您应该添加处理程序(valueChangeHandler 或 ClickHandler),而无需添加类型转换。

关于java - 如何将 CheckBox 转换为 HasChangeHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8210503/

相关文章:

url - 在 GWT 中,我想加载 www.domain.com 上的主页和 www.domain.com/xyz 上的动态页面 - 我只是无法使其工作

java - GWT Cell 树,如何使用?

javascript - 如果未使用 Protractor 选择,请选择复选框

javascript - 使用 javascript 验证复选框

c# - "Remember me"登录表单中的功能

java - JUnit 测试调试在 IntelliJ IDEA 中挂起

java - 好的java分词器吗?

java - java中如何设置文件路径

java - HTTP 状态 405 - 此 URL 不支持 HTTP 方法 POST

java - GWT:重新绑定(bind)结果必须是一个类