我需要为 NativeSelect 设置一个值,设置我希望它在我将项目添加到 Select 字段后显示的元素。我可以假设这是我应该完成的一个很好的例子:
public class TestselectUI extends UI {
@Override
protected void init(VaadinRequest request) {
final VerticalLayout layout = new VerticalLayout();
layout.setMargin(true);
setContent(layout);
NativeSelect sel = new NativeSelect();
Customer c1 = new Customer("1", "Pippo");
Customer c2 = new Customer("2", "Pluto");
Customer c3 = new Customer("3", "Paperino");
Customer c4 = new Customer("4", "Pantera");
Customer c5 = new Customer("5", "Panda");
sel.addItem(c1);
sel.addItem(c2);
sel.addItem(c3);
sel.addItem(c4);
sel.addItem(c5);
Customer test = new Customer(c4.id, c4.name);
sel.setValue(test);
layout.addComponent(sel);
}
private class Customer {
public String id;
public String name;
/**
* @param id
* @param name
*/
public Customer(String id, String name) {
super();
this.id = id;
this.name = name;
}
@Override
public String toString() {
return this.name;
}
@Override
public boolean equals(final Object object) {
// return true if it is the same instance
if (this == object) {
return true;
}
// equals takes an Object, ensure we compare apples with apples
if (!(object instanceof Customer)) {
return false;
}
final Customer other = (Customer) object;
// implies if EITHER instance's name is null we don't consider them equal
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
}
}
我的问题是值设置不正确,结果总是为空。这个问题的任何提示?