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));
}
}