2011-11-21 40 views
0
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"); 
    } 
}); 
+1

請編輯您的問題主體,以便正確描述您遇到的問題和您的問題。讀一讀[寫完美的問題](http://msmvps.com/blogs/jon_skeet/archive/2010/08/29/writing-the-perfect-question.aspx) – Justin

+1

一段沒有解釋的代碼是不是一個問題。請再試一次。 – Strelok

+2

問題是「如何將CheckBox轉換爲HasChangeHandler」。 Jameel似乎想要將一個ChangeHandler添加到CheckBox。克里斯的答案是正確的。 –

回答

2

,因爲它沒有實現該接口,您可以不投一個CheckBoxHasChangeHandlers實例。 CheckBox implements HasValueChangeHandlers所以你可以施放到那個如果你想。然而,從這段代碼中,演員的價值還不清楚。由於你知道faxGen是一個CheckBox(你在添加處理程序的行的上方聲明並實例化它),所以你應該添加處理程序(valueChangeHandler或ClickHandler)而不用強制轉換。