为什么discard()不能按预期工作?

时间:2013-02-08 15:17:19

标签: java forms vaadin

我尝试使用ComboBox和重置按钮构建一个简单表单。我想丢弃我可以重置组合框。我做错了什么?未注释的combobox.select是一种解决方法。

按照简单的例子:

public class VaadinprojectApplication extends Application {

@Override
public void init() {
    final Window mainWindow = new Window("Simpleform");

    final List<String> aListWithStrings = new ArrayList<String>();
    aListWithStrings.add("Somthing");
    final BeanItemContainer<String> objects = new BeanItemContainer<String>(String.class, aListWithStrings);
    final ComboBox comboBox = new ComboBox("Importers", objects);

    // reset button
    final Button resetButton = new Button("Reset", new Button.ClickListener() {
        @Override
        public void buttonClick(final ClickEvent event) {
            // comboBox.select(comboBox.getNullSelectionItemId());
            comboBox.discard();
            System.out.println("reset");
        }
    });
    final FormLayout form = new FormLayout();
    form.addComponent(comboBox);
    form.addComponent(resetButton);
    form.setSizeUndefined();

    mainWindow.addComponent(form);
    setMainWindow(mainWindow);
}
}

2 个答案:

答案 0 :(得分:0)

要在组合框中选择任何内容,请使用此代替discard()

comboBox.setValue(null);

答案 1 :(得分:0)

final ComboBox comboBox = new ComboBox("Importers", objects);

上面的行没有正确设置数据源。 discard()检查数据源是否为!= null。但是在代码示例的情况下,数据源为null,因此没有任何事情发生。为什么?我还不知道。