2012-02-07 9 views
1

このコンボボックスは、以前のコンボボックスで「SDO/OD」(データベースで10としてコード化されています)の選択に応じて有効または無効にします。次のコードを使用すると、ドロップダウンリストが表示されますが、すべての選択肢が表示されます。 「SDO/OD」を選択した場合にのみ、ドロップダウンが必要です。それ以外の場合は、コンボボックスを無効にしますが、データがレコードのnullを渡すようにします。私はリスナーを読んでいるとは思わない。私の質問はなぜこれが起こっているのですか?どのように私はそのようなタスクに対応するListernerを処理するには? JComboBoxため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 
+0

私はあなたの質問を理解していない、SELECTED/DESELECTEDイベントを発射しました。そのコンボボックスのユーザー選択に基づいてコンボボックスを有効/無効にしようとしていますか? – Dodd10x

答えて

3

ListenersのベストItemListenerあり、このListenerは常に二回

+0

どのように見えるでしょうか?私が使っているコードがJComboBox型ではないと思います。提案を追加すると、リスナーを置き換えるときにエラーが返されます。 –

+0

たとえば、http://stackoverflow.com/a/8731035/714968 – mKorbel

+0

ありがとう、ItemListenerは本当に最高です – shift66