Search code examples
javaswingperformancejcheckbox

Efficeint way to manipulate multiple Checkbox items


I have a 6 JCheckBoxes in the UI and based one some user operations, I have to change the state of the JCheckBoxes, like enabling,selecting and making it invisible. So, instead of having the code as separate for each JCheckBox, I have used the following code,

  Object[] checkBoxCollection = null;
        checkBoxCollection = new Object[]{qualityChkBox1, qualityChkBox2, qualityChkBox3, qualityChkBox4, qualityChkBox5, qualityChkBox6};
        for (int i = 0; i < checkBoxCollection.length; i++) {
            JCheckBox checkBox = (JCheckBox) checkBoxCollection[i];
            if (checkBox.getText().equals("Name") || checkBox.getText().equals("RollNo")) {
                checkBox.setSelected(true);
            } else {
                checkBox.setSelected(false);
            }
        }

Similarly, I have some places in code, where I am keep on changing the state like setSelected(false) and setSelected(true).

Is there any way that I can do more better than this ?

Thanks in advance.


Solution

  • As shown here, you may be able to use EnumSet to define sets that represent coherent states of your model. Then your check boxes can share a common Action that conditions each JCheckBox according to that defined state.