이전 콤보 상자의 "SDO/OD"(데이터베이스에 10으로 코딩 됨) 선택에 따라이 콤보 상자를 활성화하거나 비활성화 할 수 있습니다. 다음 코드를 사용하면 드롭 다운 목록을 제공하지만 모든 선택 항목을 제공합니다. "SDO/OD"가 선택 될 때만 드롭 다운을 원합니다. 그렇지 않으면 콤보 상자를 비활성화하고 데이터가 레코드에 대해 null을 전달할 수 있도록합니다. 나는 그것이 청취자를 읽고 있다고 생각하지 않는다. 내 질문은 왜 이런 일이 일어나는가하는 것입니다. 어떻게 그러한 작업을 수용하기 위해 Listerner를 처리합니까? JComboBox에 대한 Listeners의Java selection 콤보 상자의 청취자 변경
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
내가 당신의 질문을 이해하지 항상 두 번 이벤트를
SELECTED/DESELECTED
을 발사했다. 해당 콤보 상자의 사용자 선택에 따라 콤보 상자를 활성화/비활성화하려고합니까? – Dodd10x