値を NativeSelect に設定する必要があります。選択フィールドに項目を追加しているときに表示したい要素を設定します。私が達成すべきことの良い例として、これを想定できます:
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;
}
}
}
私の問題は、値が正しく設定されておらず、常にnullになることです。この問題のヒントはありますか?