[英]How to check the status of checkbox in java GUI?
我在Java GUI中有大約200個復選框。 現在我想要列出用戶已經檢查過的所有復選框。
我可以用這樣的方式做到這一點:
jCheckBox1.isSelected();
但是我不想為200個復選框寫這行。 有沒有辦法通過for循環來做到這一點。
所有復選框的名稱都是jCheckBox1,jCheckBox2,jCheckBox3,jCheckBox4 ... jCheckBox200
你真的應該把它們放在一個數組或集合中,這樣你就可以遍歷它們。 例如。
List<JCheckBox> allCheckBoxes = new ArrayList<JCheckBox>()
allCheckboxes.add(new JCheckBox());
等等
如果您將所有這些復選框聲明為成員,則沒有理由將它們放入列表中。
在此期間,您可以在for循環中使用狡猾的強制轉換(如果所有復選框都在同一個面板上)
boolean allSelected = true;
for(Component component : myPanel.getComponents()) {
if(component instanceof JCheckBox) {
allSelected &= ((JCheckBox)component).isSelected();
}
}
在繼續之前,我建議您閱讀有關Java數組和集合的內容
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/arrays.html
http://java.sun.com/docs/books/tutorial/collections/index.html
嗯,我該怎么說?
好的,你應該首先使用數組來保存你擁有的所有復選框,這樣你就可以遍歷它。
如果為時已晚,您可以通過循環選擇該容器上的所有元素(僅當所有復選框都在同一容器上時才有效)。 像' jPanel1.getComponents()
'之類的東西然后循環它們只看到哪個是Checkbox。
無論如何..我認為,你應該將所有這些放在一個數組中,以避免變得混亂。
好吧,如果你有一個數組中的復選框......你可以循環執行。
JCheckBox[] myBoxes = new JCheckBox[200];
//Some creation stuff here
for (int i=0; i<myBoxes.length; ++i) {
if (myBoxes[i].isSelected()) {
//Do stuff!
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.