Vaadin ComboBox选择以前的值而不是空值

时间:2012-12-05 11:28:52

标签: java combobox vaadin

我有一个ComboBox,其中用户类型是从Web服务加载的值。如果没有找到值,我想将组合框重置为空值。固定2项而不使用webservice的示例:

ComboBox comboBox = new ComboBox();
comboBox.addItem("First item");
comboBox.addItem("Second item");
comboBox.setNullSelectionAllowed(true);
comboBox.setInputPrompt("Select an item:");
comboBox.select("First item");

当我尝试输入输入提示“第三”,然后点击离开以放松焦点时,“第一项”保持选中状态。

当我尝试通过手动调用comboBox.select(null)comboBox.select("")甚至comboBox.setValue(null)来覆盖此行为时,仍然会选中“第一项”。 这听起来像是一个comboBox错误,但也许有人知道一个解决方法。

3 个答案:

答案 0 :(得分:3)

作为快速解决方案,您可以使用此代码。只需将空元素添加到组合框和模糊,或者您需要的操作,选择它。

final ComboBox comboBox = new ComboBox();
comboBox.addItem("");
comboBox.setNullSelectionItemId(comboBox.getItem(""));

comboBox.addItem("First item");
comboBox.addItem("Second item");
comboBox.setNullSelectionAllowed(true);
comboBox.setInputPrompt("Select an item:");
comboBox.select("First item");

comboBox.addListener(new BlurListener() {

@Override
public void blur(final BlurEvent event) {
        comboBox.setValue("");
    }
});

答案 1 :(得分:0)

在代码中添加以下行:

combobox.setImmediate(true);

这将显示所选值,而不是前一个值。

答案 2 :(得分:0)

由于6379不适用于removeAllItems(),您可以移除单个项目以获得相同的效果。

例如:

combobox

列出stateIDs =(List)state.getItemIds();

//get state combos ids