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