Java-Swing-单选按钮

来源:互联网 发布:阿里云独立ip主机 编辑:程序博客网 时间:2024/05/29 19:44

1. 定义

在Swing中实现单选按钮非常简单,-为单选按钮构造一个ButtonGroup对象;然后把JRadioButton类型的对象添加到ButtonGroup中。

  • 这里的ButtonGroup按钮组负责按下新按钮时取消前一次按下的操作。
 //定义单选按钮        ButtonGroup group=new ButtonGroup();        JRadioButton networkButton=new JRadioButton("网络",true);        group.add(networkButton);        JRadioButton blueToothButton=new JRadioButton("蓝牙",false);        group.add(blueToothButton);
  • 这里的true和false表示初始状态时是否选择,当然,只能有一个true,其余为false。
  • 这里的ButtonGroup按钮组仅仅负责控制按钮的操作行为,如果想把这些按钮组织在一起布局,需要把JRadioButton它们再次添加到容器中,如JPanel。

2. 定义监听器

用户单击一个按钮时产生一个单击事件,需要定义动作监听器来设置具体操作。

ActionListener listener=new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                // TODO Auto-generated method stub                //动作事件                }            }        };//listener

3. 示例

  • 这里有两个按钮一个lable,每次单击都改变lable上的text。
public static void main(String[] args)  {         //定义单选按钮        ButtonGroup group=new ButtonGroup();        JRadioButton networkButton=new JRadioButton("网络",true);        group.add(networkButton);        JRadioButton blueToothButton=new JRadioButton("蓝牙",false);        group.add(blueToothButton);        //ButtonGroup放在JPanel中        JPanel ButtonPanel=new JPanel();        ButtonPanel.add(networkButton);        ButtonPanel.add(blueToothButton);        //Panel放在JFrame中        JFrame jf=new JFrame("单选按钮");        jf.add(ButtonPanel,BorderLayout.CENTER);        //加上一个Jlable,改变单选按钮时,jlable也相应变化        JLabel label=new JLabel();        label.setText("默认");        jf.add(label,BorderLayout.NORTH);        jf.pack();        jf.setVisible(true);        //改变时定义监听器        ActionListener listener=new ActionListener() {            @Override            public void actionPerformed(ActionEvent e) {                // TODO Auto-generated method stub                switch (e.getActionCommand()) {                case "网络":                    label.setText("网络");                    break;                case "蓝牙":                    label.setText("蓝牙");                    break;                default:                    break;                }            }        };//listener        //定义单选按钮监听器        networkButton.addActionListener(listener);        blueToothButton.addActionListener(listener);        }//main

示例图片

0 0
原创粉丝点击