2016-12-19 14 views
2

JavaFX CheckComboBox いくつかのアイテムをチェックしたり解除したりするときにすべてのアイテムをチェックしたり、チェックを外す方法。アイテムのチェックまたはアンロックにすべてのアイテムをチェックする方法とチェックを外す方法

Check all when ckeck item All

Uncheck all when unckeck item All

ObservableList<String> list = FXCollections.observableArrayList("All","Item 1", "Item 2", "Item 3", "Item 4"); 

checkBoxCombo.getItems().addAll(list); 

checkBoxCombo.getCheckModel().getCheckedItems().addListener(new ListChangeListener<String>() {  

public void onChanged(ListChangeListener.Change<? extends String> c) { 

      if(checkBoxCombo.getCheckModel().isChecked(0))     
        checkBoxCombo.getCheckModel().checkAll();     
      } 
     }); 
+1

この質問は言葉遣いを混乱しています。あなたが持っているものと試したことの例を提供してください。 – Sonny

答えて

3

再帰を防ぐために、リスナーにbooleanフィールドを追加します。

checkBoxCombo.getCheckModel().getCheckedItems().addListener(new ListChangeListener<String>() { 

    private boolean changing = false; 

    @Override 
    public void onChanged(ListChangeListener.Change<? extends String> c) { 
     if (!changing && checkBoxCombo.getCheckModel().isChecked(0)) { 
      // trigger no more calls to checkAll when the selected items are modified by checkAll 
      changing = true; 
      checkBoxCombo.getCheckModel().checkAll(); 
      changing = false; 
     } 
    } 
}); 
+0

それは私が必要なものです、今私は働いています。 ありがとうございます。 – R3ing

関連する問題