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) {
}
}
};
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);
JPanel ButtonPanel=
new JPanel();
ButtonPanel.add(networkButton);
ButtonPanel.add(blueToothButton);
JFrame jf=
new JFrame(
"单选按钮");
jf.add(ButtonPanel,BorderLayout.CENTER);
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) {
switch (e.getActionCommand()) {
case "网络":
label.setText(
"网络");
break;
case "蓝牙":
label.setText(
"蓝牙");
break;
default:
break;
}
}
};
networkButton.addActionListener(listener);
blueToothButton.addActionListener(listener);
}