【java学习】GUI组件--CheckBox

时间:2023-01-27 21:34:29

学了几天的CheckBox,终于学会了一些,哈哈,进度是慢了一点,不过总算是学会了checkBox的一点用法。

package checkboxTest;

/**程序:让你了解复选框
 * 
 * 通过复选框的选择,字体可以变为常规、粗体、斜体
 * 
 */

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class CheckboxTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		CheckboxFrame checkbox=new CheckboxFrame();
		checkbox.setTitle("CheckboxTest");
		checkbox.setDefaultCloseOperation(checkbox.EXIT_ON_CLOSE);
		checkbox.setVisible(true);
	}

}

//窗口类
class CheckboxFrame extends JFrame{
	
	//构造方法
	 public CheckboxFrame(){
		this.setLocation(300, 200);
		this.setSize(300, 200);
		
		CheckboxPanel panel=new CheckboxPanel();
		this.add(panel);
	}
}


//面板类
class CheckboxPanel extends JPanel{
	
	public final JLabel words; 
	
	public final JCheckBox heiti;      //黑体按钮
	public final JCheckBox xieti;     //斜体按钮
	
	private static final int FONTSIZE=12;
	
	public ActionListener check;
	
	//创建监听对象
	
	
	//构造方法
	public  CheckboxPanel(){
		
		this.setSize(250, 140);
		//this.setLayout(new BorderLayout());
		
		words =new JLabel("看我变魔术给你看看!"); 
		
		words.setFont(new Font("Serif",Font.PLAIN,FONTSIZE));
				
		heiti=new JCheckBox("黑体");
		
		xieti=new JCheckBox("斜体");
		
		
		//注册监听
		 check=new ActionListener()  //ActionListener 为监听接口
		 {

			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				
				int mode=0;
				if(heiti.isSelected()==true){
					
					mode+=Font.BOLD;
				}
				if(xieti.isSelected()==true){
					mode+=Font.ITALIC;
				}
				words.setFont(new Font("serif",mode,FONTSIZE));
			}
			
		};
		heiti.addActionListener(check);
		xieti.addActionListener(check);
		
		
		//将组件添加到面板中去
		this.add(words);
		this.add(heiti);
		this.add(xieti);
	}
}