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); } }
運行效果: