我为我的复选框使用Arraylist。我想删除每一个选中它后但我的代码没有执行预期的行为。我不知道为什么我的代码无法正常工作。如何选择删除特定的JCheckBox?
这就是:
public class sampledsa extends JFrame implements ActionListener {
private JCheckBox CBname;
private ArrayList <JCheckBox> SBname = new ArrayList < >();
private JButton BTok;
public sampledsa() {
setVisible(true);
setSize(500, 400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridLayout(6, 1));
BTok = new JButton("OK");
for (int i = 0; i < 5; i++) {
CBname = new JCheckBox("Checkbox" + (i + 1));
SBname.add(CBname);
add(SBname.get(i));
}
add(BTok);
BTok.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(BTok)) {
for (int i = 0; i < SBname.size(); i++) {
if (SBname.get(i).isSelected()) {
SBname.remove(i);
}
}
JFrame f = new JFrame();
f.setVisible(true);
f.setSize(500, 400);
f.setDefaultCloseOperation(EXIT_ON_CLOSE);
for (int i = 0; i < SBname.size(); i++) {
f.add(SBname.get(i));
}
}
}
public static void main(String[] args) {
new sampledsa();
}
}
只是一个提示...类应该以大写字母开头,变量应该以小写字母开头。 – byxor
我想'ArrayList'不支持并发修改。也就是说,您不能在迭代元素时删除元素。 –
http://stackoverflow.com/documentation/java/90/collections/2197/removing-items-from-a-list-within-a-loop#t=201608221144205738709 – rdonuk