所以我的软件显示了一个flextable(数据被抓取并显示在数据库中),用户可以点击一个复选框来选择数据。
//users is the flextable object.
userCheck = new ClickHandler() {
public void onClick(ClickEvent event) {
CheckBox src = (CheckBox) event.getSource();
for (int i = 1, n = users.getRowCount(); i < n; i++) {
CheckBox box = (CheckBox) users.getWidget(i, 0);
if (!box.equals(src)) {
box.setValue(false, false);
}
}
removeUserButton.setEnabled(src.getValue());
editUserButton.setEnabled(src.getValue());
}
};
上面的代码有效,但现在我正在尝试实现一个操作,而不是用户单击复选框,我希望用户单击一行(表格的任何单元格)并使整行(用户已选择)要突出显示。所以我在下面实现了这个代码,但到目前为止它不起作用(像mouseclick将不会注册,我还没有实现颜色的东西.. :()。任何建议?
userRowCheck = new ClickHandler() {
public void onClick(ClickEvent event) {
Cell src = users.getCellForEvent(event);
int rowIndex = src.getRowIndex();
System.out.println("Cell Selected: userRowCheck Handler, rowIndex: " + rowIndex);
//This is just to check if this method is even called out. And well, it doesn't.
}
};
非常感谢!!!!
答案 0 :(得分:2)
如果您将userRowCheck
添加到FlexTable:myFlexTable.addClickHandler(userRowCheck);
,它应该有效。只需确保为src
测试null
,因为如果您没有在窗格中放置窗口小部件并且用户点击该窗格,则会返回null
。