簡體   English   中英

如何在java GUI中查看復選框的狀態?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM