0

ComboBox とリセット ボタンを使用して単純なフォームを作成しようとしました。破棄するとコンボボックスをリセットできると思いました。私は何を間違えましたか?コメントを外したombobox.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);
}
}
4

2 に答える 2

0

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

上記の行では、データソースが正しく設定されていません。discard()データソース!=nullかどうかをチェックします。しかし、コード例の場合、データソースはnullであるため、何も起こりません。なんで?私にはまだ分かりません。

于 2013-02-11T14:42:50.857 に答える
0

コンボボックスで何も選択しない場合は、代わりにこれを使用しますdiscard():

comboBox.setValue(null);
于 2013-02-08T21:12:48.973 に答える