JCheckBox 如何限制选择个数

qq846954989 2018-05-03 01:23:49
JCheckBox 如何限制选择个数
...全文
1635 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

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);
    }
	
}
参看下吧。。。

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧