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

时间:2015-11-18 16:47:11

标签: vaadin

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

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

我猜.setItemCaption()不是正确的方法吗? 什么是正确的方法? 提前谢谢!

3 个答案:

答案 0 :(得分:0)

使用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()不合适)。

答案 1 :(得分:0)

myComboBox.addItem("Option 1");

答案 2 :(得分:0)

(特别是如果你是Vaadin的新手),我建议尝试Viritin add-on及其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年,现在作为其开发者倡导者。