62,614
社区成员
发帖
与我相关
我的任务
分享
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class Main {
private static final int COUNT = 3;
private static int selected = 0;
public static void main(String[] args) {
JFrame jf = new JFrame("测试窗口");
jf.setSize(250, 250);
jf.setLocationRelativeTo(null);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
List<JCheckBox> checkboxs = new ArrayList<JCheckBox>();
// 创建复选框
checkboxs.add(new JCheckBox("菠萝"));
checkboxs.add(new JCheckBox("香蕉"));
checkboxs.add(new JCheckBox("雪梨"));
checkboxs.add(new JCheckBox("荔枝"));
checkboxs.add(new JCheckBox("橘子"));
checkboxs.add(new JCheckBox("苹果"));
for(int i = 0; i < checkboxs.size(); i++){
// 添加第一个复选框的状态被改变的监听(其他复选框如果需要监听状态改变,则可按此方法添加监听)
checkboxs.get(i).addItemListener(new ItemListener () {
@Override
public void itemStateChanged(ItemEvent e) {
// TODO Auto-generated method stub
// 获取事件源(即复选框本身)
JCheckBox checkBox = (JCheckBox) e.getSource();
System.out.println(checkBox.getText() + " 是否选中: " + checkBox.isSelected());
if(checkBox.isSelected()){
selected++;
if(selected >= COUNT){
checkBox.setSelected(false);
}
}
else{
selected--;
}
System.out.println(" 选中: " + selected);
}
});
panel.add(checkboxs.get(i));
}
// 设置默认第一个复选框选中
checkboxs.get(0).setSelected(true);
jf.setContentPane(panel);
jf.setVisible(true);
}
}
参看下吧。。。