繁体   English   中英

Vaadin:如何向组合框添加选项?

[英]Vaadin: How do I add options to a combo box?

我有一个组合框,我正在尝试向其中添加选项。 我该怎么做? 这是我到目前为止:

ComboBox contactPrefixNametf = new ComboBox("Prefix");
contactPrefixNametf.setItemCaption(contactPrefixNametf, "Mr");
fLayout.addComponent(contactPrefixNametf);
contactPrefixNametf.setImmediate(true);

我猜.setItemCaption()不是正确的方法? 正确的方法是什么?

先感谢您!

使用addItem()方法:

    final ComboBox my_combox_box = new ComboBox("My Combo Box");
    for (final My_object mo: list_of_my_objects)
    {
        my_combox_box.addItem(mo);
        my_combox_box.setItemCaption(mo, mo.name());
    }

此示例使用addItemsetItemCaption()结合使用显示友好名称存储用户选择的实际对象(如果toString()不合适)。

myComboBox.addItem("Option 1");

(特别是如果您是 Vaadin 的新手),我建议您尝试使用Viritin 插件及其 ComboBox 的 TypedSelect 变体。 其类型良好的 API 使许多事情变得非常简单。 例如,它有一个(类型化的)setOptions 方法,它的值更改侦听器直接提供值,而不是通过非类型化的 Property 接口。

其用法的代码示例:

List<Person> options = service.findMyPersons();

TypedSelect<Person> select = new TypedSelect<>(Person.class)
        .withSelectType(ComboBox.class);
select.setOptions(options);
// If toString() representation is not good, modify it to something else
select.setCaptionGenerator(person -> person.getFirstName() + person.getLastName());

select.addMValueChangeListener(event -> {
    Person person = event.getValue();
});

免责声明:我是 Viritin 的维护者,但也维护了 Vaadin 8 年,现在是其开发者倡导者。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM