I have around 200 hundred checkboxes in a Java GUI. Now I want to have the list of all checkboxes that have been checked by the user.
I can do it in one way like thi
Ummm, what should I say?
OK, You should starts by using array to hold all check boxes you have so you can loop through it.
In case that is too late, you may have a another choice by loop though all elements on that container (only work if all checkboxes are on the same container). Something like 'jPanel1.getComponents()
' and then loop them only see which is a Checkbox.
Anyway .. I think, you should put all those in an array and save yourself from a variable mess.
You really should have put these in an array or Collection so that you can just loop over them. eg.
List<JCheckBox> allCheckBoxes = new ArrayList<JCheckBox>()
allCheckboxes.add(new JCheckBox());
etc.
If you have all these checkboxes declared as members then there's no excuse to just put them in a list instead.
In the meantime you could use a dodgy cast in a for loop (if all the checkboxes are on the same panel)
boolean allSelected = true;
for(Component component : myPanel.getComponents()) {
if(component instanceof JCheckBox) {
allSelected &= ((JCheckBox)component).isSelected();
}
}
I'd recommend reading about Java arrays and collections before continuing
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/arrays.html
http://java.sun.com/docs/books/tutorial/collections/index.html
Well, if you have your checkboxes in an array... you can do it in a loop.
JCheckBox[] myBoxes = new JCheckBox[200];
//Some creation stuff here
for (int i=0; i<myBoxes.length; ++i) {
if (myBoxes[i].isSelected()) {
//Do stuff!
}
}