我對Java很陌生,並且在UI上有一些問題循環通過JCheckBoxes。這個想法是,我有一堆複選框(不在一個組中,因爲可以選擇多個複選框。)當我單擊一個JButton時,我想創建一個包含每個選中複選框的文本的字符串。我遇到的問題是,我們的教師告訴我們,複選框需要通過方法創建,這意味着(請參閱下面的代碼)沒有每個複選框的離散實例名稱。如果有的話,我可以說像如何獲取所有JCheckBox對象的句柄以便循環?
if(checkBox1.isSelected()) {
myString.append(checkBox.getText());
}
這將重複checkBox2,checkBox3,等等。但是,提供給我們添加複選框到面板的方法是這樣的:
public class CheckBoxPanel extends JPanel {
private static final long serialVersionUID = 1L;
public CheckBoxPanel(String title, String... options) {
setBorder(BorderFactory.createTitledBorder(BorderFactory
.createEtchedBorder(), title));
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
// make one checkbox for each option
for (String option : options) {
JCheckBox b = new JCheckBox(option);
b.setActionCommand(option);
add(b);
}
}
}
這被稱爲是這樣的:
toppingPanel = new CheckBoxPanel("Each Topping $1.50", "Tomato", "Green Pepper",
"Black Olives", "Mushrooms", "Extra Cheese",
"Pepperoni", "Sausage");
所以我現在有一個包含邊框與標題面板「每個Topping $ 1.50「和7個可見覆選框。我需要做的是獲得所有選定澆頭的清單。我們不應該爲每個複選框使用ActionListener,而是在單擊按鈕時獲取列表。我在這裏感覺真的很無能,但當單個複選框沒有實例名稱時,我無法弄清楚如何獲得複選框的isSelected屬性。
理想情況下,我想以某種方式將所有複選框添加到數組中,並循環通過按鈕的動作偵聽器中的數組來確定哪些被選中,但是如果我必須單獨檢查每一個,我會。我無法弄清楚如何在動態創建個別複選框時引用它。
@ALL responders - 我只能選擇一個答案來標記已接受,但所有這些答案都有幫助。謝謝! – EmmyS 2010-05-23 01:09:09