GUI之Swing组件的JCheckBox

package gui;
import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class T13 {
    /*
     * JCheckBox组件被称为复选框,用户可以选择其中一个或者多个
     */
    public static void main(String[] args) {
        JCheckBox italic;//斜体
        JCheckBox bold;//粗体
        JLabel bel;
        JFrame jw = new JFrame("复选框");//创建窗体,名称为复选框
//        创建一个JLabel标签,标签文本居中对齐
        bel = new JLabel("软件工程欢迎你",JLabel.CENTER);
//        设置标签文本的字体
        bel.setFont(new Font("宋体",Font.PLAIN,20));
        jw.add(bel);//将标签加入jw窗体
        
        JPanel pl = new JPanel();//创建一个JPanel面板
//        创建两个JCheckBox复选框
        italic = new JCheckBox("ITALIC");//选择斜体
        bold = new JCheckBox("BOLD");//选择粗体
//        为复选框定义ActionListener监听器
        MyiActionListener listener = new MyiActionListener(bel,italic,bold);
//        为复选框添加监听器
        italic.addActionListener(listener);
        bold.addActionListener(listener);
//        在JPanel面板添加复选框
        pl.add(italic);
        pl.add(bold);
//        在SOUTH区域添加JPanel面板
        jw.add(pl,BorderLayout.SOUTH);//边界布局管理器
        
        jw.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jw.setSize(800,600);
        jw.setVisible(true);
    }
}
class MyiActionListener implements ActionListener {
    //主要是想在另一个类里面,使用JLabel的对象,如何使用呢?如何传递同一个实例对象
    //为了使用main方法中的lab对象,必须将这个实例通过被使用处的类的构造方法传递过来。
    JLabel bel;
    JCheckBox italic;
    JCheckBox bold;
    public MyiActionListener() {

    }
    public MyiActionListener(JLabel bel,JCheckBox italic,JCheckBox bold) {
        this.bel = bel;
        this.italic = italic;
        this.bold = bold;
    }
    public void actionPerformed(ActionEvent e) {
        int mode =0;
        if(bold.isSelected()) {
            mode+=Font.BOLD;
        }
        if(italic.isSelected()) {
            mode+=Font.ITALIC;
        }
        bel.setFont(new Font("宋体",mode,20));
    }
}

GUI之Swing组件的JCheckBox