是否可以对ListSelect组件使用自定义的Converter?
这是我尝试的:

ListSelect ls = new ListSelect();
ls.setConverter((Converter) new MyCustomConverter());

ObjectToDisplay ots = new ObjectToDisplay();

// ls.setConvertedValue(ots ); // Converter is called but ListSelect stays empty
lsConstruction.addItem(ots ); // Did not work


但是,ListSelect添加值后保持为空。

谢谢你的帮助!

最佳答案

使用setItemCaption()

final ListSelect ls = new ListSelect ();
final BeanItemContainer<ObjectToDisplay> container = new BeanItemContainer<>(ObjectToDisplay.class, objectList);
ls.setContainerDataSource(container);
for (final ObjectToDisplay o : objectList){
    ls.setItemCaption(o, yourDesiredFormatFunction(o));
}


以编程方式添加对象将使用container.addItem(object)完成。

关于转换器的使用:this post详细说明与AbstractSelect实现(例如ListSelect和ComboBoxes)一起使用的转换器。

09-19 00:43