0

为什么在执行 setReadOnly(true) 时 Vaadin ComboBox 变得不可见?

截图

普通的 普通 ComboBox - 可见

无形的带有 setReadOnly(true) 的 ComboBox - 不可见

源代码

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);
    }
}
4

3 回答 3

1

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

我的建议(有点老套):禁用组件并在 CSS 中更改它们的禁用外观。

于 2012-05-03T15:28:26.677 回答
1

Nexus 是对的,当设置为只读时组件变得不可见。事实上,设置为只读添加“v-readonly”css 类名,其余的由 CSS 完成。

问候。

于 2012-05-04T00:51:47.017 回答
1

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

从 API 文档:

这是一个简单的下拉选择,例如,不支持多选、新项目、延迟加载和其他高级功能。有时,没有 ComboBox 的所有花里胡哨的“本机”选择是更好的选择。

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

于 2012-05-04T12:01:01.860 回答