Swing-JCheckBox用法-入门

JCheckBox是Swing中的复选框。所谓复选框就是指,可以同时存在多个这样的控件,它们可以有多个处于被选中状态。对于每一个复选框而言,它只有选中和未选中两种状态。

JCheckBox的常用方法如下图所示:

可以为它添加ActionListener对象来响应事件。

使用demo如下:

JCheckBoxDemo.java

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;

/*
 * source code from 《java核心技术 卷1 基础知识》 P326
 */
public class JCheckBoxDemo extends JFrame{

    int DEFAULT_WIDTH = 600;
    int DEFAULT_HEIGHT = 400;
    private JLabel label;
    private JCheckBox boldCheckbox;
    private JCheckBox italicCheckbox;
    private static final int FONTSIZE = 12;    
    
    public JCheckBoxDemo(){
        setTitle("JCheckBoxDemo");
        setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
        
        //添加label
        label = new JLabel("The quick brown fox jumps over the lazy dog.");
        label.setFont(new Font("Serif",Font.PLAIN, FONTSIZE));
        add(label, BorderLayout.CENTER);
        
        //构造一个监听器,响应checkBox事件
        ActionListener actionListener = new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                int mode = 0;
                if(boldCheckbox.isSelected()) mode += Font.BOLD;
                if(italicCheckbox.isSelected()) mode += Font.ITALIC;                
                label.setFont(new Font("Serif", mode, FONTSIZE));
            }
        };
        
        //添加buttonPanel,它包含2个checkBox
        JPanel buttonPanel = new JPanel();
        add(buttonPanel, BorderLayout.SOUTH);
        
        //为buttonPanel添加2个checkBox
        boldCheckbox = new JCheckBox("bold");
        boldCheckbox.addActionListener(actionListener);
        buttonPanel.add(boldCheckbox);
        
        italicCheckbox = new JCheckBox("italic");
        italicCheckbox.addActionListener(actionListener);
        buttonPanel.add(italicCheckbox);
    }    
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //创建窗体并指定标题
        JCheckBoxDemo frame = new JCheckBoxDemo();
        //关闭窗体后退出程序
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //自动适配所有控件大小
        //frame.pack();
        //设置窗体位置在屏幕中央
        frame.setLocationRelativeTo(null);
        //显示窗体
        frame.setVisible(true);
    }

}

运行效果:

posted on 2015-07-12 15:01  pzy4447  阅读(5240)  评论(0编辑  收藏  举报