【问题标题】:How to create reusable widgets and objects in GWT?如何在 GWT 中创建可重用的小部件和对象?
【发布时间】:2011-11-16 00:23:45
【问题描述】:
我正在做一个个人项目,我有一个表单面板。在表单面板内,我有一个 flexTable。其中有带有复选框的行。在动态添加的每一行中,行尾都会有一个“清除”标签。标签有一个点击处理程序来获取选定的行 ID 并将其从弹性表中删除。
但是,在 GWT 中,我只能使用我的标签实例一次。因此,每次添加新行时,清除标签总是最后且不可重复。我希望能够重复清除,同时保留删除其相应行的功能。我在这方面和java方面都很新,所以任何帮助都将不胜感激。谢谢!
附言。我正在使用 UiBinder 创建这些页面,不确定这是否有任何区别。谢谢!
【问题讨论】:
标签:
java
javascript
gwt
uibinder
【解决方案1】:
小部件只能有一个父级。因此,每次您将相同的标签实例添加到新行时,GWT 都会将其从前一行中删除并插入到新行中。一种选择是每行创建一个标签实例。您可以在表格上设置单击处理程序并检查单击了哪个单元格:
@UiHandler("table")
void onTableClick(ClickEvent event) {
Cell cell = table.getCellForEvent(event);
if (cell != null) {
int rowIndex = cell.getRowIndex();
int cellIndex = cell.getCellIndex();
}
}
您是否考虑过使用 CellTable 代替 FlexTable?表格单元格中的多个小部件应该具有更好的性能。