package First;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class _a9_按钮事件_复选框 {
public static void main(String[] args) {
new myButten("倾斜加粗复选框");
}
}
class myButten extends JFrame{
//标签
JLabel lab;
//面板
JPanel jp;
//复选框
JCheckBox jcb1 , jcb2 ;
myButten(String s){
super(s);
lab = new JLabel("Hello world!",JLabel.CENTER);//居中显示
lab.setFont(new Font("宋体",Font.PLAIN,20));//设置字体,传入的一个字体类 字体、形态、大小,三个设置用逗号隔开 形态可以去查询API文档进行设置
jp = new JPanel();
jcb1 = new JCheckBox("倾斜");
jcb2 = new JCheckBox("加粗");
//创建监听器对象,可以通过匿名内部类的形式引入(匿名内部类不需要创建对象,直接new即可)
Monitor5 m = new Monitor5();
// 将监听器添加到复选框上
jcb1.addActionListener(m);
jcb2.addActionListener(m);
//添加到窗体上,如果不设置窗体的样式,默认是边界布局管理器的窗体,如果不设置窗体中其他元素的位置,默认添加到中间(重叠覆盖)
add(lab);//相当于添加到窗口上 this.add(lab);
//设置边框
lab.setBorder(BorderFactory.createEtchedBorder());
jp.add(jcb1);
jp.add(jcb2);
add(jp,BorderLayout.PAGE_END);
this.setBounds(300, 300, 270, 160);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
//以内部类的形式创建监听器
class Monitor5 implements ActionListener{
public void actionPerformed(ActionEvent e) {
int mode = 0 ;
if(jcb1.isSelected()) {//是否被选中
mode += Font.ITALIC;//倾斜
}
if(jcb2.isSelected()) {
mode += Font.BOLD;//加粗
}
lab.setFont(new Font("宋体",mode,20));
}
}
}