package First;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class _a9_按钮事件2_单选按钮 {
public static void main(String[] args) {
new myButten2("颜色变化单选框");
}
}
class myButten2 extends JFrame{
//单选按钮
JRadioButton rad1 , rad2 , rad3;
//面板
JPanel jp , jp2;
//创建一个按钮组(添加在同一个按钮组的单选按钮,会发生互斥效果。即:当选中一个单选按钮的时候,原本已经选中的单选按钮会取消)
ButtonGroup bg;
public myButten2(String s) {
super(s);
bg = new ButtonGroup();
rad1 = new JRadioButton("红色");
rad2 = new JRadioButton("绿色");
rad3 = new JRadioButton("恢复原背景色");
rad1.addActionListener(new ActionListener() {//匿名内部类的形式添加监听器
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jp2.setBackground(Color.red);
}
});
rad2.addActionListener(new ActionListener() {//匿名内部类的形式添加监听器
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jp2.setBackground(Color.GREEN);
}
});
rad3.addActionListener(new ActionListener() {//匿名内部类的形式添加监听器
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
jp2.setBackground(Color.BLUE);
}
});
//将两个单选按钮添加到同一个按钮组,进行发生互斥的效果
bg.add(rad1);
bg.add(rad2);
bg.add(rad3);
jp = new JPanel();
jp2 = new JPanel();
add(jp2);
//设置边框
jp2.setBorder(BorderFactory.createEtchedBorder());
jp.add(rad1);
jp.add(rad2);
jp.add(rad3);
add(jp,"South");
//设置背景色(必须在面板上进行设置,如果直接在窗体上设置背景色的话是不能够设置成功的)
jp2.setBackground(Color.BLUE);
this.setBounds(300, 300, 270, 160);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}