Vaadin ComboBox在readonly时看不见

时间:2012-05-03 15:11:31

标签: combobox vaadin readonly invisible

为什么Vaadin ComboBox在执行setReadOnly(true)时会隐藏?

截图

正常 normal ComboBox - visible

隐形ComboBox with setReadOnly(true) - invisible

源代码

import java.util.List;   
import com.vaadin.ui.ComboBox;

public class PropertyComboBox extends ComboBox
{
    public PropertyComboBox(List<String> properties)
    {
        super();
        for(String property: properties) {this.addItem(property);}
        this.setImmediate(true);
        this.setMultiSelect(false);

        this.setNewItemsAllowed(false);
        this.setInputPrompt("Property");
        this.setReadOnly(true);
    }
}

3 个答案:

答案 0 :(得分:1)

当您将它们设置为只读时,所有组件都会“隐藏”。我找不到任何理由,也想知道。

我的建议(有点hacky):禁用组件并在CSS中更改其禁用的外观。

答案 1 :(得分:1)

Nexus是正确的,当设置为readOnly时,组件变得不可见。事实上,设置为只读时会添加“v-readonly”css类名,而CSS则会执行其余操作。

问候。

答案 2 :(得分:1)

如果您尝试创建一个用户无法写入任何内容的组合框,请查看NativeSelect组件。

来自API doc:

  

这是一个简单的下拉选项,例如,不支持多选,新项,延迟加载和其他高级功能。有时“原生”选择没有ComboBox的所有铃声和口哨是更好的选择。

如果您不需要这些功能,那么您应该定义考虑使用NativeSelect。