A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马雨铎 黑马帝   /  2011-8-1 10:58  /  2094 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

比如说 只允许有一个复选框被选中
如果已经选择一个复选框不能选第二个
检查复选框是否被选中 没有的话提示选中一个


感觉应该用 函数控制去写    但是一点思路都没有,   童鞋们给提供下 思路!

评分

参与人数 1技术分 +1 收起 理由
小龙 + 1

查看全部评分

3 个回复

倒序浏览
黑马网友  发表于 2011-8-1 11:05:15
沙发

回复 楼主 的帖子

你说的是单选按钮吧  ( VB语言的说法)
下面我是看视频时写的一段代码,希望能对你有帮助![code]package GUI.checkbox;

import java.awt.Checkbox;
import java.awt.CheckboxGroup;
import java.awt.Choice;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class CheckboxTest extends Frame {

        /**
         * 单选按钮和复选按钮(组合框)和下拉列表框
         * 以及他们对应的事件监听器
         */

        Checkbox cb = new Checkbox("你想成为黑马吗?");
        //定义一个组合框组
        CheckboxGroup cbg = new CheckboxGroup();
        //定义一个属于同一组的单选按钮
        Checkbox cb1 = new Checkbox("想", true, cbg);
        Checkbox cb2 = new Checkbox("不想", false, cbg);
        Choice c = new Choice();
       
        public void init() {
                setSize(500, 500);
                setTitle("Checkbox");
                FlowLayout fl = new FlowLayout();
                setLayout(fl);
                add(cb);
                add(cb1);
                add(cb2);
                c.add("-------");
                c.add("中国");
                c.add("小日本");
                add(c);
                addWindowListener(new WindowAdapter() {
                        @Override
                        public void windowClosing(WindowEvent e) {
                                System.exit(0);
                        }
                });
                setVisible(true);
                MyListener ml = new MyListener();
                cb.addItemListener(ml);
                cb1.addItemListener(ml);
                cb2.addItemListener(ml);
                //给下拉列表框注册事件监听器
                c.addItemListener(new ItemListener(){
                        @Override
                        public void itemStateChanged(ItemEvent e) {
                                //方法一:
                                //返回当前选定项的索引。
                                int post = c.getSelectedIndex();
                                //根据序号,获取此 Choice 菜单中指定索引上的字符串
                                System.out.println(c.getItem(post));
                               
                                //方法二:返回受事件影响的项(对象)
                                System.out.println(e.getItem());
                        }
                });
        }

        class MyListener implements ItemListener {

                @Override
                public void itemStateChanged(ItemEvent e) {
                        //返回产生事件的 ItemSelectable 对象方式1
                        Checkbox cbs = (Checkbox) e.getItemSelectable();
                        //返回产生事件的 Checkbox 对象方式2
                        //Checkbox  cbx = cbg.getSelectedCheckbox();
                       
                        // 匹配事件源:可以用下面的两种方式
                        //方式一:比较产生事件对象的label属性值
                        if (cbs.getLabel().equals("你想成为黑马吗?")) {
                                //判断组合框是否选中
                                if(cbs.getState()){
                                        System.out.println("选中啦!");
                                }else{
                                        System.out.println("很遗憾没有选中!");
                                }
                        }
                        //方式二:直接比较对象
                        else if (cbs == cb1) {
                                //判断选择与否的方法1
                                if(e.getStateChange() == ItemEvent.SELECTED){
                                        System.out.println("我很想成为黑马程序员");
                                }
                        }
                        else if (cbs == cb2) {
                                //判断选择与否的方法2
                                if(cbs.getState()){
                                        System.out.println("我不想成为黑马程序员");
                                }/*else{//此处的else语句无效,即不能通过else来判断单选按钮没有选中。
                                        System.out.println("haha");
                                }*/
                        }
                }
        }

        public static void main(String[] args) {
                new CheckboxTest().init();
        }

}[/code]

评分

参与人数 1技术分 +2 收起 理由
小龙 + 2 谢谢你的回答,楼主好像不是要这个把,

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-8-1 21:11:07
藤椅
用javascript 很容易搞定
回复 使用道具 举报
黑马网友  发表于 2011-8-2 02:44:12
板凳
JCheckBox中有个isSelected()  判断是否被选中
选中为true
反之则为false

评分

参与人数 1技术分 +2 收起 理由
admin + 2 快3点了还在学习,精神可嘉!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马