令人遺憾的是,沒有內置的方法從FlexTable中的雙擊事件中檢索單元格。它可以在幾行中實現。這是我做到的。在DoubleClickHandler
public class DoubleClickTable extends FlexTable {
class MyCell extends Cell {
protected MyCell(int rowIndex, int cellIndex) {
super(rowIndex, cellIndex);
}
}
public Cell getCellForEvent(MouseEvent<? extends EventHandler> event) {
Element td = getEventTargetCell(Event.as(event.getNativeEvent()));
if (td == null) {
return null;
}
int row = TableRowElement.as(td.getParentElement()).getSectionRowIndex();
int column = TableCellElement.as(td).getCellIndex();
return new MyCell(row, column);
}
}
然後調用getCellForEvent()來檢索單擊的單元格:
創建FlexTable的子類,用下面的代碼
flexTable.addDoubleClickHandler(new DoubleClickHandler() {
@Override
public void onDoubleClick(DoubleClickEvent event) {
Cell cell = flexTable.getCellForEvent(event);
GWT.log("Row index: " + cell.getRowIndex());
}
});
實現細節:方法getCellForEvent()是在類HTMLTable(FlexTable的父類)中具有相同名稱的方法的副本,但它具有不同的參數簽名。 MyCell類是一種解決方法,可以調用受保護的Cell構造函數。
@David ...謝謝你救了我的時間.... –