永发信息网

java GUI 复选框 如何设置监听

答案:2  悬赏:80  手机版
解决时间 2021-03-19 11:59
Checkbox cb1,cb2,cb3,cb4,cb5,cb6 6个复选框;
cb1=new Checkbox("数据库");
cb2=new Checkbox("数学");
cb3=new Checkbox("信息系统");
cb4=new Checkbox("操作系统");
cb5=new Checkbox("数据结构");
cb6=new Checkbox("C语言");
我想添加监听 如果被选上 那就把里面的字符串取出来,怎么做
每个cb 复选框都得加监听 加什么监听???
我的意思是 如果界面上 选择了 cb1 , cb2. 那我就用两个字符串变量 string 1 = “数据库”
string2 = “数学”;
最佳答案
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

final class CheckBoxDemo extends JFrame {
    public String getTitle() {return "CheckBoxDemo";}
    static private final Dimension size = new Dimension(600,400);
    public Dimension getPreferredSize() {return size;}
    public Dimension getMaximumSize() {return size;}
    public Dimension getMinimumSize() {return size;}
    public Dimension getSize(){return size;}

    //把选中的内容放进 List
    final private java.util.List<String> stringList=new ArrayList<String>(5);

    private class CheckAction extends AbstractAction{

        private CheckAction(String name) {
            super(name);
        }

        public void actionPerformed(ActionEvent e) {
            Object obj=e.getSource();
            if (obj instanceof JToggleButton){
                JToggleButton t = (JToggleButton)obj;

                if(t.isSelected())
                    stringList.add(t.getText());
                else
                    stringList.remove(t.getText());
            }

            //打印效果
            for (String s:stringList) {
                System.out.print(s + "\t");
            }
            System.out.println();
        }
    }

    CheckBoxDemo() throws HeadlessException {
        init();
        attachListeners();
        doLay();
    }

    private JCheckBox[] buttons=new JCheckBox[4];
    private void init(){

        for (int i = 0,j=buttons.length;i < j; i++) {
            buttons[i]=new JCheckBox(new CheckAction(Integer.toString(i)));
        }

    }

    private void attachListeners(){
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    private void doLay(){
        Container container = getContentPane();
        container.setLayout(new FlowLayout());

        for (JCheckBox button : buttons) {
            container.add(button);
        }


        pack();
        setVisible(true);
    }
    public static void main(String...args) {
        System.setProperty("swing.defaultlaf","com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
        SwingUtilities.invokeLater(
            new Runnable(){
                public void run() {
                    new CheckBoxDemo();
                }
            }
        );
    }
}
全部回答
你是要做数学计算吗?复选框是checkbox,那是无法录入的,他只能对你的原形和正方形做选择;你要的应该是文本框input text,输入你要计算的数据,核心东西就是你的数学公式算法,按这个思路我想你能想到。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
手工制作时经常要用纸,一张平面的纸通过(
喜欢黑色的人心理是怎样的
梦见开摩托车
昨天晚上做梦,梦到裤子口袋里面飞出很多鸟,
求中华小当家超清版
新供销天润粮油连锁NO.1105在什么地方啊,我
华数云图机顶盒停服解密
进口马自达2,0两厢百公里多少个油
徐州最好吃龙虾
谁有工商银行网址
济南交通违章远程学习
微信怎么秒赞
湖南米粉在哪里啊,我有事要去这个地方
三字经全文意思
小米维修费在小米商城哪付
推荐资讯
梦见好多人在一起吃饭
消防电工主要负责什么工作,工作累吗
白石秋长到惠州火车站怎么坐车
后面的面是?A.B.C.
一年级的反义词大全
五种用间的方法中,哪种含金量最大
硬盘充映射扇区计数:数据:48 阔值:36,这
万州到阳平火站怎么走
六一塝我想知道这个在什么地方
量筒读刻度
用“刽”组词
我准迁证,迁移证,都办好了,身份证掉了,还
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?