我有这个组合框,我想根据在前一个组合框中选择的“SDO/OD”(在数据库中编码为 10)来启用或禁用它。当我使用以下代码时,它会为我提供下拉列表,但对于每个选择。我只希望在选择“SDO/OD”时下拉。否则,禁用组合框但允许数据为记录传递空值。我不认为这是在阅读 Listener。我的问题是为什么会这样?如何处理 Listerner 以适应这样的任务?
fcbRole.addSelectionChangedListener(new SelectionChangedListener<ModelData>()
{
@Override
public void selectionChanged(SelectionChangedEvent<ModelData> se)
{
fcbOfficeRegion.clearSelections();
fcbOfficeRegion.getStore().clearFilters();
if(fcbRole.getValue().equals("SDO/OD") && se.getSelectedItem() != null)
{
fcbOfficeRegion.enable();
fcbOfficeRegion.setValueField(se.getSelectedItem().get("strValue").toString());
StoreFilter<ModelData> sfRole = new StoreFilter<ModelData>()
{
@Override
public boolean select(Store<ModelData> store,
ModelData parent, ModelData item,
String property) {
String name = item.get("filterDepts");
name = getScc().cleanString(name.toLowerCase());
if (name.contains("(" + fcbRole.getValue().get("strValue") + ")"))
{
return true;
}
return false;
}
};
fcbOfficeRegion.getStore().addFilter(sfRole);
fcbOfficeRegion.getStore().applyFilters("fcbOfficeRegion");
}
else
最佳答案
精选 Listeners对于 JComboBox是ItemListener ,这个 Listener
触发事件 SELECTED/DESELECTED
,总是两次
关于组合框的 Java selectionChange 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9180257/