按代码在ComboBox中设置所选项目

问题描述 投票:0回答:3

如果值列表只有一个项目,我想按代码选择一个comboBox的第一项。我试过这个:

Comboitem item = new Comboitem();
for(Empresa e : empresasList){              
    item.setValue(e.getEmpId());
    item.setLabel(e.getEmpNombre());
    item.setParent(cb_empresa);
}
if(empresasList.size()==1){             
    idEmpresa = empresasList.get(0).getEmpId();
//cb_empresa.setSelectedIndex(0);
    cb_empresa.setSelectedItem(item);
}

但它不起作用。我也试过评论说:

//cb_empresa.setSelectedIndex(0);

有帮助吗?

谢谢!

java combobox zk
3个回答
0
投票

我不知道item.setParent(cb_empresa);是否对视图有直接影响。您可以稍后尝试设置索引,也可以在刷新cb_empresa之后尝试设置索引。


0
投票

首先,你的代码是错误的。你必须创建与empresasList.size()一样多的Comboitems。我觉得类似的东西

for(Empresa e : empresasList){
    Comboitem item = new Comboitem();              
    item.setValue(e.getEmpId());
    item.setLabel(e.getEmpNombre());
    cb_empresa.appendItem(item);
}
if(cb_empresa.getItemCount()==1){             
    cb_empresa.setSelectedIndex(0);
}

应该管用。然而,在ZK中存在一个错误,即setSelectedIndex()必须被推迟,正如Aloong所提到的那样。据我记忆,这个错误已得到修复。如果没有,您可以使用Event.echoEvent()作为解决方法。


0
投票
for(Empresa e : empresasList){
    Comboitem item = new Comboitem();              
    item.setValue(e.getEmpId());
    item.setLabel(e.getEmpNombre());
    cb_empresa.appendChild(item);
}
if(cb_empresa.getItemCount()==1){             
    cb_empresa.setSelectedIndex(0);
}
© www.soinside.com 2019 - 2024. All rights reserved.