GWT按钮调用更改文本

GWT按钮调用更改文本,gwt,Gwt,如何更改按下按钮时嵌入在celltable列中的ButtonCell文本。 我只见过setFieldUpdater。 还有一些简单的方法可以更新另一个CellTable列,而不是直接访问它。单元格小部件是“基于模型的”(MVP),您必须更新行中呈现的对象(传递给FieldUpdater的对象),然后告诉CellTable值已更改,应该重新绘制(使用setRowData,使用传递给FieldUpdater的索引)。 比如: new FieldUpdater<MyObject, String&

如何更改按下按钮时嵌入在celltable列中的ButtonCell文本。 我只见过setFieldUpdater。 还有一些简单的方法可以更新另一个CellTable列,而不是直接访问它。

单元格小部件是“基于模型的”(MVP),您必须更新行中呈现的对象(传递给FieldUpdater的对象),然后告诉CellTable值已更改,应该重新绘制(使用setRowData,使用传递给FieldUpdater的索引)。 比如:

new FieldUpdater<MyObject, String>() {
  @Override
  public void update(int index, MyObject object, String value) {
    object.setSomeField("foo");
    cellTable.setRowData(index, Collections.singletonList(object));
  }
}
newfieldupdater(){
@凌驾
公共void更新(int索引、MyObject对象、字符串值){
object.setSomeField(“foo”);
setRowData(索引、集合、单例列表(对象));
}
}

谢谢。最初我创建了cellTable.redraw();但这会更新整个表。集合的用途是什么。singletonList(对象)?要向单元格传递多个对象?
setRowData
需要一个
List
,但您只有一个对象;
java.util.Collections.singletonList
围绕您的单个对象构建一个
List
;这比创建一个新的,比如说
ArrayList
来将您的对象添加到其中更容易。顺便说一句,
setRowData
upd列出项目(行)从
索引开始
;传递一个单例列表只会更新
索引
行;传递一个包含两个项目的列表将同时更新
索引
索引+1
行。嗨,Thomas,在自定义单元格上记录呈现方法似乎是在使用FieldUpdater更新单个对象时呈现两次表。尽管如此T