📄 buttongrouptest.java
字号:
//ButtonGroupTest.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ButtonGroupTest extends JFrame implements ItemListener {
private JCheckBox cbBold , cbItalic; //复选框
private JRadioButton rbSong , rbHei; //单选按钮
private JLabel lblText ; //演示文本
public ButtonGroupTest() {
super("CheckBox & RadioButton Test");
Container cp = this.getContentPane();
Panel p = new Panel();
cbBold = new JCheckBox("粗体"); //粗体复选框
cbItalic = new JCheckBox("斜体"); //斜体复选框
rbSong = new JRadioButton("宋体" , true); //宋体单选
rbHei = new JRadioButton("黑体"); //黑体单选
lblText = new JLabel("这是一串测试文本");
ButtonGroup bg = new ButtonGroup(); //按钮组
p.add(cbBold);
p.add(cbItalic);
cp.add(p , BorderLayout.WEST); //把复选框放到左边
bg = new ButtonGroup();
bg.add(rbSong); //把单选按钮放到按钮组中
bg.add(rbHei); //保证每次只能选中一个
p = new Panel();
p.add(rbSong);
p.add(rbHei);
cp.add(p , BorderLayout.EAST); //把单选按钮放到右边
cp.add(lblText , BorderLayout.CENTER); //把演示文本放中央
/*为每个复选和单选按钮添加监听对象*/
cbBold.addItemListener(this);
cbItalic.addItemListener(this);
rbSong.addItemListener(this);
rbHei.addItemListener(this);
}
/*实现ItemListener接口的方法*/
public void itemStateChanged(ItemEvent e) {
String fontName; //新字体名称
int fontStyle = 0; //新字体类型
if (rbSong.isSelected()){ //选中宋体
fontName = "宋体";
} else if (rbHei.isSelected()) { //选中黑体
fontName = "黑体";
} else { //都未选中
fontName = "宋体";
}
if (cbBold.isSelected()) { //选中粗体
fontStyle |= Font.BOLD;
}
if (cbItalic.isSelected()) { //选中斜体
fontStyle |= Font.ITALIC;
}
/*应用新字体*/
lblText.setFont(new Font(fontName , fontStyle , 20));
}
public static void main(String[]args) {
ButtonGroupTest bgt = new ButtonGroupTest();
bgt.setSize(500,100);
bgt.setDefaultCloseOperation(EXIT_ON_CLOSE);
bgt.setVisible(true);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -