2012-05-03 50 views
0

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

截图

正常 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); 
    } 
} 

回答

1

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

从API文档:

这是多选,新项目,惰性加载,和其他先进的功能简单的下拉列表中选择无,例如,支持。有时候,“本地”选择没有所有的ComboBox的铃声和口哨是一个更好的选择。

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

1

所有组件获得 “隐形” 当设置t下摆只读。我找不到任何理由,也想知道。

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

1

Nexus是正确的,当设置为readOnly时,组件变为不可见。事实上,设置为只读添加“v-readonly”CSS类名和CSS做其余的。

问候。