我在列中有一个TextInputCell,像这样:
TextInputCell textCell = new TextInputCell();
Column<EffortCost, String> hourColumn = new Column<EffortCost, String>(textCell) {
public String getValue(EffortCost object) {
String formatted = NumberFormat.getFormat("0.00").format(object.getHours());
return formatted;
}
};
如果我写“ 1”,我的字符串返回:“ 1.00”。我想要相同的结果,但是我不想格式化字符串,我希望我的小部件在将文本放入TextInputCell中的同时执行此操作,换句话说,我想在写入文本时自动格式化字符串TextInputCell。这就像一个“ MaskedTextInputCell”。我怎样才能做到这一点?我可以看一些例子吗?
感谢您的关注。
最佳答案
您可以为hourColumn添加一个FieldUpdater。
它具有update()方法,该方法在此列中的单元格值更改时触发。例如:
hourColumn.setFieldUpdater(new FieldUpdater<EffortCost, String>() {
@Override
public void update(int index, EffortCost object, String value) {
// do something when value changes
// return NumberFormat.getFormat("0.00").format(object.getHours());
}
});
每次输入数字时,都会格式化和更新。