Dil*_*ilu 5 java vaadin vaadin8
我想将复杂对象列表集成到Vaadin组合框中.我尝试了如下,只显示垃圾值(toString()值).但我想知道如何设置应在下拉列表中显示的特定属性.
下面的类对象应该在组合框中呈现.
public class TestExecution {
private String name;
private String startingTime;
private String endingTime;
private String status;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getStartingTime() {
return startingTime;
}
public void setStartingTime(String startingTime) {
this.startingTime = startingTime;
}
public String getEndingTime() {
return endingTime;
}
public void setEndingTime(String endingTime) {
this.endingTime = endingTime;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
Run Code Online (Sandbox Code Playgroud)
}
注意:我无法覆盖toString()方法,因为我将其用于其他目的.
首先,您可以在创建时给出组合框的类型,如下所示.
private ComboBox<TestExecution> comboExecution = new ComboBox<>("Select Execution");
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过设置ItemCaptionGenerator来指定用于呈现下拉列表项标题的逻辑.
comboExecution.setItemCaptionGenerator(new ItemCaptionGenerator<TestExecution>() {
@Override
public String apply(TestExecution execution) {
return execution.getName();
}
});
Run Code Online (Sandbox Code Playgroud)
您可以使用lamda表达式简化代码,如下所示.
comboExecution.setItemCaptionGenerator(execution -> execution.getName());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1520 次 |
| 最近记录: |