2

JavaFX CheckComboBox How to check and uncheck all items when checking or unckeck some of the items.

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();                
             }
         });
fabian
  • 80,457
  • 12
  • 86
  • 114
R3ing
  • 437
  • 3
  • 12
  • 1
    This question has confusing wording. Please supply an example of what you have and what you've tried. – Sonny Dec 19 '16 at 19:54

1 Answers1

3

Add a boolean field to the listener to prevent recursion:

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;
        }
    }
});
fabian
  • 80,457
  • 12
  • 86
  • 114