我正在尝试使用这个类使用“绑定表单到数据”来使用Vaadin创建表单:
public class Job {
private String nom_projet;
private String svn;
private String planning1;
private String planning2;
private String goals;
}
有吸气剂和制定者。
当我尝试这一切时,一切正常:
final Form form = new Form();
Job bean = new Job();
BeanItem<Job> item = new BeanItem<Job>(bean);
form.setItemDataSource(item);
我尝试添加一个自定义字段,如“Vaadin之书”中描述的那样,所以我创建了这个类:
public class MyFieldFactory implements FormFieldFactory {
private static final long serialVersionUID = 1L;
public Field createField(Item item, Object propertyId, Component uiContext) {
Select select = new Select("goals");
select.addItem("compiler:compile");
select.addItem("clean install");
select.addItem("clean");
select.addItem("package");
select.addItem("test");
select.setNewItemsAllowed(true);
return select;
}
}
但是当我想将此陈述添加到MyApplication.java
:
form.setFieldFactory(new MyFieldFactory());
我得到了“setFieldFactory
”下划线和3个选择:
- ()将参数1转换为FieldFactory
- 更改为setFirldFormFactory(...)
- 让'MyFieldFactory'实现'FieldFactory'
当我点击:
- 让'MyFieldFactory'实现'FieldFactory'
自定义字段未显示在表单中。
答案 0 :(得分:2)
setFieldFactory
方法以FieldFactory
作为参数,MyFieldFactory
类实现FormFieldFactory
并不相同。
在Vaadin javadoc中,setFieldFactory
标记为已弃用,并提示您改为使用setFormFieldFactory(FormFieldFactory formFieldFactory)
。
使用此方法可以解决您的问题。
问候。