<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSwing%2FJCheckBox</id>
		<title>Java Tutorial/Swing/JCheckBox - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSwing%2FJCheckBox"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/JCheckBox&amp;action=history"/>
		<updated>2026-04-22T05:03:29Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/JCheckBox&amp;diff=3975&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/JCheckBox&amp;diff=3975&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 17:44, 31 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/JCheckBox&amp;diff=3976&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Swing/JCheckBox&amp;diff=3976&amp;oldid=prev"/>
				<updated>2010-05-31T15:33:49Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Adding an Icon to the Label of a JCheckBox Component ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JCheckBox checkbox = new JCheckBox();&lt;br /&gt;
    String label = &amp;quot;&amp;lt;html&amp;gt;&amp;lt;table cellpadding=0&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;img src=file:&amp;quot;&lt;br /&gt;
        + &amp;quot;icon.gif&amp;quot; + &amp;quot;/&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td width=&amp;quot; + 3 + &amp;quot;&amp;gt;&amp;lt;td&amp;gt;&amp;quot;&lt;br /&gt;
        // Retrieve the current label text&lt;br /&gt;
        + checkbox.getText() + &amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;;&lt;br /&gt;
    // Add the icon&lt;br /&gt;
    checkbox.setText(label);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  CheckBox List ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (C) 2005 - 2007 JasperSoft Corporation.  All rights reserved. &lt;br /&gt;
 * http://www.jaspersoft.ru.&lt;br /&gt;
 *&lt;br /&gt;
 * Unless you have purchased a commercial license agreement from JasperSoft,&lt;br /&gt;
 * the following license terms apply:&lt;br /&gt;
 *&lt;br /&gt;
 * This program is free software; you can redistribute it and/or modify&lt;br /&gt;
 * it under the terms of the GNU General Public License version 2 as published by&lt;br /&gt;
 * the Free Software Foundation.&lt;br /&gt;
 *&lt;br /&gt;
 * This program is distributed WITHOUT ANY WARRANTY; and without the&lt;br /&gt;
 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;
 * See the GNU General Public License for more details.&lt;br /&gt;
 *&lt;br /&gt;
 * You should have received a copy of the GNU General Public License&lt;br /&gt;
 * along with this program; if not, see http://www.gnu.org/licenses/gpl.txt&lt;br /&gt;
 * or write to:&lt;br /&gt;
 *&lt;br /&gt;
 * Free Software Foundation, Inc.,&lt;br /&gt;
 * 59 Temple Place - Suite 330,&lt;br /&gt;
 * Boston, MA  USA  02111-1307&lt;br /&gt;
 *&lt;br /&gt;
 *&lt;br /&gt;
 *&lt;br /&gt;
 *&lt;br /&gt;
 * CheckBoxList.java&lt;br /&gt;
 * &lt;br /&gt;
 * Created on October 5, 2006, 9:53 AM&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
/**&lt;br /&gt;
 *&lt;br /&gt;
 * @author gtoffoli&lt;br /&gt;
 */&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.event.MouseAdapter;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import javax.swing.DefaultListCellRenderer;&lt;br /&gt;
import javax.swing.DefaultListModel;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JList;&lt;br /&gt;
import javax.swing.ListSelectionModel;&lt;br /&gt;
import javax.swing.UIManager;&lt;br /&gt;
import javax.swing.border.Border;&lt;br /&gt;
import javax.swing.border.EmptyBorder;&lt;br /&gt;
public class CheckBoxList extends JList {&lt;br /&gt;
  public CheckBoxList() {&lt;br /&gt;
    super();&lt;br /&gt;
    setModel(new DefaultListModel());&lt;br /&gt;
    setCellRenderer(new CheckboxCellRenderer());&lt;br /&gt;
    addMouseListener(new MouseAdapter() {&lt;br /&gt;
      @Override&lt;br /&gt;
      public void mousePressed(MouseEvent e) {&lt;br /&gt;
        int index = locationToIndex(e.getPoint());&lt;br /&gt;
        if (index != -1) {&lt;br /&gt;
          Object obj = getModel().getElementAt(index);&lt;br /&gt;
          if (obj instanceof JCheckBox) {&lt;br /&gt;
            JCheckBox checkbox = (JCheckBox) obj;&lt;br /&gt;
            checkbox.setSelected(!checkbox.isSelected());&lt;br /&gt;
            repaint();&lt;br /&gt;
          }&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    );&lt;br /&gt;
    setSelectionMode(ListSelectionModel.SINGLE_SELECTION);&lt;br /&gt;
  }&lt;br /&gt;
  @SuppressWarnings(&amp;quot;unchecked&amp;quot;)&lt;br /&gt;
  public int[] getCheckedIdexes() {&lt;br /&gt;
    java.util.List list = new java.util.ArrayList();&lt;br /&gt;
    DefaultListModel dlm = (DefaultListModel) getModel();&lt;br /&gt;
    for (int i = 0; i &amp;lt; dlm.size(); ++i) {&lt;br /&gt;
      Object obj = getModel().getElementAt(i);&lt;br /&gt;
      if (obj instanceof JCheckBox) {&lt;br /&gt;
        JCheckBox checkbox = (JCheckBox) obj;&lt;br /&gt;
        if (checkbox.isSelected()) {&lt;br /&gt;
          list.add(new Integer(i));&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    int[] indexes = new int[list.size()];&lt;br /&gt;
    for (int i = 0; i &amp;lt; list.size(); ++i) {&lt;br /&gt;
      indexes[i] = ((Integer) list.get(i)).intValue();&lt;br /&gt;
    }&lt;br /&gt;
    return indexes;&lt;br /&gt;
  }&lt;br /&gt;
  @SuppressWarnings(&amp;quot;unchecked&amp;quot;)&lt;br /&gt;
  public java.util.List getCheckedItems() {&lt;br /&gt;
    java.util.List list = new java.util.ArrayList();&lt;br /&gt;
    DefaultListModel dlm = (DefaultListModel) getModel();&lt;br /&gt;
    for (int i = 0; i &amp;lt; dlm.size(); ++i) {&lt;br /&gt;
      Object obj = getModel().getElementAt(i);&lt;br /&gt;
      if (obj instanceof JCheckBox) {&lt;br /&gt;
        JCheckBox checkbox = (JCheckBox) obj;&lt;br /&gt;
        if (checkbox.isSelected()) {&lt;br /&gt;
          list.add(checkbox);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    return list;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (C) 2005 - 2007 JasperSoft Corporation. All rights reserved.&lt;br /&gt;
 * http://www.jaspersoft.ru.&lt;br /&gt;
 * &lt;br /&gt;
 * Unless you have purchased a commercial license agreement from JasperSoft, the&lt;br /&gt;
 * following license terms apply:&lt;br /&gt;
 * &lt;br /&gt;
 * This program is free software; you can redistribute it and/or modify it under&lt;br /&gt;
 * the terms of the GNU General Public License version 2 as published by the&lt;br /&gt;
 * Free Software Foundation.&lt;br /&gt;
 * &lt;br /&gt;
 * This program is distributed WITHOUT ANY WARRANTY; and without the implied&lt;br /&gt;
 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU&lt;br /&gt;
 * General Public License for more details.&lt;br /&gt;
 * &lt;br /&gt;
 * You should have received a copy of the GNU General Public License along with&lt;br /&gt;
 * this program; if not, see http://www.gnu.org/licenses/gpl.txt or write to:&lt;br /&gt;
 * &lt;br /&gt;
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA USA&lt;br /&gt;
 * 02111-1307&lt;br /&gt;
 * &lt;br /&gt;
 * &lt;br /&gt;
 * &lt;br /&gt;
 * &lt;br /&gt;
 * CheckboxCellRenderer.java&lt;br /&gt;
 * &lt;br /&gt;
 * Created on October 5, 2006, 10:03 AM&lt;br /&gt;
 * &lt;br /&gt;
 */&lt;br /&gt;
/**&lt;br /&gt;
 * &lt;br /&gt;
 * @author gtoffoli&lt;br /&gt;
 */&lt;br /&gt;
class CheckboxCellRenderer extends DefaultListCellRenderer {&lt;br /&gt;
  protected static Border noFocusBorder = new EmptyBorder(1, 1, 1, 1);&lt;br /&gt;
  public Component getListCellRendererComponent(JList list, Object value, int index,&lt;br /&gt;
      boolean isSelected, boolean cellHasFocus) {&lt;br /&gt;
    if (value instanceof CheckBoxListEntry) {&lt;br /&gt;
      CheckBoxListEntry checkbox = (CheckBoxListEntry) value;&lt;br /&gt;
      checkbox.setBackground(isSelected ? list.getSelectionBackground() : list.getBackground());&lt;br /&gt;
      if (checkbox.isRed()) {&lt;br /&gt;
        checkbox.setForeground(Color.red);&lt;br /&gt;
      } else {&lt;br /&gt;
        checkbox.setForeground(isSelected ? list.getSelectionForeground() : list.getForeground());&lt;br /&gt;
      }&lt;br /&gt;
      checkbox.setEnabled(isEnabled());&lt;br /&gt;
      checkbox.setFont(getFont());&lt;br /&gt;
      checkbox.setFocusPainted(false);&lt;br /&gt;
      checkbox.setBorderPainted(true);&lt;br /&gt;
      checkbox.setBorder(isSelected ? UIManager.getBorder(&amp;quot;List.focusCellHighlightBorder&amp;quot;)&lt;br /&gt;
          : noFocusBorder);&lt;br /&gt;
      return checkbox;&lt;br /&gt;
    } else {&lt;br /&gt;
      return super.getListCellRendererComponent(list, value.getClass().getName(), index,&lt;br /&gt;
          isSelected, cellHasFocus);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (C) 2005 - 2007 JasperSoft Corporation. All rights reserved.&lt;br /&gt;
 * http://www.jaspersoft.ru.&lt;br /&gt;
 * &lt;br /&gt;
 * Unless you have purchased a commercial license agreement from JasperSoft, the&lt;br /&gt;
 * following license terms apply:&lt;br /&gt;
 * &lt;br /&gt;
 * This program is free software; you can redistribute it and/or modify it under&lt;br /&gt;
 * the terms of the GNU General Public License version 2 as published by the&lt;br /&gt;
 * Free Software Foundation.&lt;br /&gt;
 * &lt;br /&gt;
 * This program is distributed WITHOUT ANY WARRANTY; and without the implied&lt;br /&gt;
 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU&lt;br /&gt;
 * General Public License for more details.&lt;br /&gt;
 * &lt;br /&gt;
 * You should have received a copy of the GNU General Public License along with&lt;br /&gt;
 * this program; if not, see http://www.gnu.org/licenses/gpl.txt or write to:&lt;br /&gt;
 * &lt;br /&gt;
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA USA&lt;br /&gt;
 * 02111-1307&lt;br /&gt;
 * &lt;br /&gt;
 * &lt;br /&gt;
 * &lt;br /&gt;
 * &lt;br /&gt;
 * CheckBoxListEntry.java&lt;br /&gt;
 * &lt;br /&gt;
 * Created on October 5, 2006, 10:19 AM&lt;br /&gt;
 * &lt;br /&gt;
 */&lt;br /&gt;
/**&lt;br /&gt;
 * &lt;br /&gt;
 * @author gtoffoli&lt;br /&gt;
 */&lt;br /&gt;
class CheckBoxListEntry extends JCheckBox {&lt;br /&gt;
  private Object value = null;&lt;br /&gt;
  private boolean red = false;&lt;br /&gt;
  public CheckBoxListEntry(Object itemValue, boolean selected) {&lt;br /&gt;
    super(itemValue == null ? &amp;quot;&amp;quot; : &amp;quot;&amp;quot; + itemValue, selected);&lt;br /&gt;
    setValue(itemValue);&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isSelected() {&lt;br /&gt;
    return super.isSelected();&lt;br /&gt;
  }&lt;br /&gt;
  public void setSelected(boolean selected) {&lt;br /&gt;
    super.setSelected(selected);&lt;br /&gt;
  }&lt;br /&gt;
  public Object getValue() {&lt;br /&gt;
    return value;&lt;br /&gt;
  }&lt;br /&gt;
  public void setValue(Object value) {&lt;br /&gt;
    this.value = value;&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isRed() {&lt;br /&gt;
    return red;&lt;br /&gt;
  }&lt;br /&gt;
  public void setRed(boolean red) {&lt;br /&gt;
    this.red = red;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Check if a JCheckBox is selected in its item change listener ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.event.ItemEvent;&lt;br /&gt;
import java.awt.event.ItemListener;&lt;br /&gt;
import java.awt.event.WindowAdapter;&lt;br /&gt;
import java.awt.event.WindowEvent;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class Main extends JFrame {&lt;br /&gt;
  JCheckBox check = new JCheckBox(&amp;quot;Checkbox&amp;quot;, false);&lt;br /&gt;
  public Main() {&lt;br /&gt;
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    check.addItemListener(new ItemListener() {&lt;br /&gt;
      public void itemStateChanged(ItemEvent e) {&lt;br /&gt;
        System.out.println(&amp;quot;Checked? &amp;quot; + check.isSelected());&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    getContentPane().add(check);&lt;br /&gt;
    pack();&lt;br /&gt;
    setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String arg[]) {&lt;br /&gt;
    new Main();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Creating JCheckBox Components ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public JCheckBox()&lt;br /&gt;
JCheckBox aCheckBox = new JCheckBox();&lt;br /&gt;
public JCheckBox(Icon icon)&lt;br /&gt;
JCheckBox aCheckBox = new JCheckBox(new DiamondIcon(Color.RED, false));&lt;br /&gt;
aCheckBox.setSelectedIcon(new DiamondIcon(Color.PINK, true));&lt;br /&gt;
public JCheckBox(Icon icon, boolean selected)&lt;br /&gt;
JCheckBox aCheckBox = new JCheckBox(new DiamondIcon(Color.RED, false), true);&lt;br /&gt;
aCheckBox.setSelectedIcon(new DiamondIcon(Color.PINK, true));&lt;br /&gt;
public JCheckBox(String text)&lt;br /&gt;
JCheckBox aCheckBox = new JCheckBox(&amp;quot;Spinach&amp;quot;);&lt;br /&gt;
public JCheckBox(String text, boolean selected)&lt;br /&gt;
JCheckBox aCheckBox = new JCheckBox(&amp;quot;Onions&amp;quot;, true);&lt;br /&gt;
public JCheckBox(String text, Icon icon)&lt;br /&gt;
JCheckBox aCheckBox = new JCheckBox(&amp;quot;Garlic&amp;quot;, new DiamondIcon(Color.RED, false));&lt;br /&gt;
aCheckBox.setSelectedIcon(new DiamondIcon(Color.PINK, true));&lt;br /&gt;
public JCheckBox(String text, Icon icon, boolean selected)&lt;br /&gt;
JCheckBox aCheckBox = new JCheckBox(&amp;quot;Anchovies&amp;quot;, new DiamondIcon(Color.RED,  false), true);&lt;br /&gt;
aCheckBox.setSelectedIcon(new DiamondIcon(Color.PINK, true));&lt;br /&gt;
public JCheckBox(Action action)&lt;br /&gt;
Action action = ...;&lt;br /&gt;
JCheckBox aCheckBox = new JCheckBox(action);&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Customizing JCheckBox Check Mark Icon ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.*;&lt;br /&gt;
import java.awt.*;&lt;br /&gt;
import java.awt.event.*;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import java.awt.Graphics;&lt;br /&gt;
import java.awt.GridLayout;&lt;br /&gt;
import javax.swing.AbstractButton;&lt;br /&gt;
import javax.swing.ButtonModel;&lt;br /&gt;
import javax.swing.Icon;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
class CheckBoxIcon implements Icon {&lt;br /&gt;
  public void paintIcon(Component component, Graphics g, int x, int y) {&lt;br /&gt;
    AbstractButton abstractButton = (AbstractButton)component;&lt;br /&gt;
    ButtonModel buttonModel = abstractButton.getModel();&lt;br /&gt;
    &lt;br /&gt;
    Color color = buttonModel.isSelected() ?  Color.BLUE : Color.RED;&lt;br /&gt;
    g.setColor(color);&lt;br /&gt;
    &lt;br /&gt;
    g.drawRect(1, 1, 20,20);&lt;br /&gt;
    &lt;br /&gt;
  }&lt;br /&gt;
  public int getIconWidth() {&lt;br /&gt;
    return 20;&lt;br /&gt;
  }&lt;br /&gt;
  public int getIconHeight() {&lt;br /&gt;
    return 20;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class IconCheckBoxSample {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
        JFrame frame = new JFrame(&amp;quot;Iconizing CheckBox&amp;quot;);&lt;br /&gt;
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
        Icon checked = new CheckBoxIcon();&lt;br /&gt;
        Icon unchecked = new CheckBoxIcon();&lt;br /&gt;
        JCheckBox aCheckBox1 = new JCheckBox(&amp;quot;Pizza&amp;quot;, unchecked);&lt;br /&gt;
        aCheckBox1.setSelectedIcon(checked);&lt;br /&gt;
        JCheckBox aCheckBox2 = new JCheckBox(&amp;quot;Calzone&amp;quot;);&lt;br /&gt;
        aCheckBox2.setIcon(unchecked);&lt;br /&gt;
        aCheckBox2.setSelectedIcon(checked);&lt;br /&gt;
        Icon checkBoxIcon = new CheckBoxIcon();&lt;br /&gt;
        JCheckBox aCheckBox3 = new JCheckBox(&amp;quot;Anchovies&amp;quot;, checkBoxIcon);&lt;br /&gt;
        JCheckBox aCheckBox4 = new JCheckBox(&amp;quot;Stuffed Crust&amp;quot;, checked);&lt;br /&gt;
        frame.setLayout(new GridLayout(0,1));&lt;br /&gt;
        frame.add(aCheckBox1);&lt;br /&gt;
        frame.add(aCheckBox2);&lt;br /&gt;
        frame.add(aCheckBox3);&lt;br /&gt;
        frame.add(aCheckBox4);&lt;br /&gt;
        frame.setSize(300, 200);&lt;br /&gt;
        frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Customizing JCheckBox Look and Feel ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Property StringObject TypeCheckBox.backgroundColorCheckBox.borderBorderCheckBox.darkShadowColorCheckBox.disabledTextColorCheckBox.focusColorCheckBox.focusInputMapObject[ ]CheckBox.fontFontCheckBox.foregroundColorCheckBox.gradientListCheckBox.highlightColorCheckBox.iconIconCheckBox.interiorBackgroundColorCheckBox.lightColorCheckBox.marginInsetsCheckBox.rolloverBooleanCheckbox.selectColorCheckBox.shadowColorCheckBox.textIconGapIntegerCheckBox.textShiftOffsetIntegerCheckBoxUIString&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Display an icon when the cursor is moved over the checkbox. This is called the rollover icon. ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.Icon;&lt;br /&gt;
import javax.swing.ImageIcon;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JCheckBox checkbox = new JCheckBox();&lt;br /&gt;
    Icon rollIcon = new ImageIcon(&amp;quot;roll-icon.gif&amp;quot;);&lt;br /&gt;
    checkbox.setRolloverIcon(rollIcon);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Event firing sequence: ActionListener, ItemListener and ChangeListener ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.event.ItemEvent;&lt;br /&gt;
import java.awt.event.ItemListener;&lt;br /&gt;
import java.awt.event.KeyEvent;&lt;br /&gt;
import javax.swing.AbstractButton;&lt;br /&gt;
import javax.swing.ButtonModel;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.event.ChangeEvent;&lt;br /&gt;
import javax.swing.event.ChangeListener;&lt;br /&gt;
public class SelectingCheckBox {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Selecting CheckBox&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JCheckBox checkBox = new JCheckBox(&amp;quot;A&amp;quot;);&lt;br /&gt;
    // Define ActionListener&lt;br /&gt;
    ActionListener actionListener = new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent actionEvent) {&lt;br /&gt;
        AbstractButton abstractButton = (AbstractButton) actionEvent.getSource();&lt;br /&gt;
        boolean selected = abstractButton.getModel().isSelected();&lt;br /&gt;
        String newLabel = (selected ? &amp;quot;A&amp;quot; : &amp;quot;B&amp;quot;);&lt;br /&gt;
        abstractButton.setText(newLabel);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    // Define ChangeListener&lt;br /&gt;
    ChangeListener changeListener = new ChangeListener() {&lt;br /&gt;
      public void stateChanged(ChangeEvent changeEvent) {&lt;br /&gt;
        AbstractButton abstractButton = (AbstractButton) changeEvent.getSource();&lt;br /&gt;
        ButtonModel buttonModel = abstractButton.getModel();&lt;br /&gt;
        boolean armed = buttonModel.isArmed();&lt;br /&gt;
        boolean pressed = buttonModel.isPressed();&lt;br /&gt;
        boolean selected = buttonModel.isSelected();&lt;br /&gt;
        System.out.println(&amp;quot;Changed: &amp;quot; + armed + &amp;quot;/&amp;quot; + pressed + &amp;quot;/&amp;quot; + selected);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    // Define ItemListener&lt;br /&gt;
    ItemListener itemListener = new ItemListener() {&lt;br /&gt;
      public void itemStateChanged(ItemEvent itemEvent) {&lt;br /&gt;
        AbstractButton abstractButton = (AbstractButton) itemEvent.getSource();&lt;br /&gt;
        Color foreground = abstractButton.getForeground();&lt;br /&gt;
        Color background = abstractButton.getBackground();&lt;br /&gt;
        int state = itemEvent.getStateChange();&lt;br /&gt;
        if (state == ItemEvent.SELECTED) {&lt;br /&gt;
          abstractButton.setForeground(background);&lt;br /&gt;
          abstractButton.setBackground(foreground);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    // Attach Listeners&lt;br /&gt;
    checkBox.addActionListener(actionListener);&lt;br /&gt;
    checkBox.addChangeListener(changeListener);&lt;br /&gt;
    checkBox.addItemListener(itemListener);&lt;br /&gt;
    checkBox.setMnemonic(KeyEvent.VK_S);&lt;br /&gt;
    frame.add(checkBox, BorderLayout.NORTH);&lt;br /&gt;
    frame.setSize(300, 100);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Getting and Setting the State of a JCheckbox Component ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
public class Main {&lt;br /&gt;
  public static void main(String[] argv) throws Exception {&lt;br /&gt;
    JCheckBox checkbox = new JCheckBox();&lt;br /&gt;
    // Get the current state of the checkbox&lt;br /&gt;
    boolean b = checkbox.isSelected();&lt;br /&gt;
    // Set the state of the checkbox to off&lt;br /&gt;
    checkbox.setSelected(false);&lt;br /&gt;
    // Set the state of the checkbox to on&lt;br /&gt;
    checkbox.setSelected(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  JCheckBox.setMnemonic ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions of source code must retain the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
 *     documentation and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Neither the name of Sun Microsystems nor the names of its&lt;br /&gt;
 *     contributors may be used to endorse or promote products derived&lt;br /&gt;
 *     from this software without specific prior written permission.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS&lt;br /&gt;
 * IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR&lt;br /&gt;
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR&lt;br /&gt;
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR&lt;br /&gt;
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;br /&gt;
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;br /&gt;
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 */&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Font;&lt;br /&gt;
import java.awt.GridLayout;&lt;br /&gt;
import java.awt.event.ItemEvent;&lt;br /&gt;
import java.awt.event.ItemListener;&lt;br /&gt;
import java.awt.event.KeyEvent;&lt;br /&gt;
import javax.swing.BorderFactory;&lt;br /&gt;
import javax.swing.ImageIcon;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JComponent;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
/*&lt;br /&gt;
 * CheckBoxDemo.java requires 16 image files in the images/geek directory:&lt;br /&gt;
 * geek-----.gif, geek-c---.gif, geek--g--.gif, geek---h-.gif, geek----t.gif,&lt;br /&gt;
 * geek-cg--.gif, ..., geek-cght.gif.&lt;br /&gt;
 */&lt;br /&gt;
public class CheckBoxDemo extends JPanel implements ItemListener {&lt;br /&gt;
  JCheckBox chinButton;&lt;br /&gt;
  JCheckBox glassesButton;&lt;br /&gt;
  JCheckBox hairButton;&lt;br /&gt;
  JCheckBox teethButton;&lt;br /&gt;
  /*&lt;br /&gt;
   * Four accessory choices provide for 16 different combinations. The image for&lt;br /&gt;
   * each combination is contained in a separate image file whose name indicates&lt;br /&gt;
   * the accessories. The filenames are &amp;quot;geek-XXXX.gif&amp;quot; where XXXX can be one of&lt;br /&gt;
   * the following 16 choices. The &amp;quot;choices&amp;quot; StringBuffer contains the string&lt;br /&gt;
   * that indicates the current selection and is used to generate the file name&lt;br /&gt;
   * of the image to display.&lt;br /&gt;
   * &lt;br /&gt;
   * ---- //zero accessories&lt;br /&gt;
   * &lt;br /&gt;
   * c--- //one accessory -g-- --h- ---t&lt;br /&gt;
   * &lt;br /&gt;
   * cg-- //two accessories c-h- c--t -gh- -g-t --ht&lt;br /&gt;
   * &lt;br /&gt;
   * -ght //three accessories c-ht cg-t cgh-&lt;br /&gt;
   * &lt;br /&gt;
   * cght //all accessories&lt;br /&gt;
   */&lt;br /&gt;
  StringBuffer choices;&lt;br /&gt;
  JLabel pictureLabel;&lt;br /&gt;
  public CheckBoxDemo() {&lt;br /&gt;
    super(new BorderLayout());&lt;br /&gt;
    // Create the check boxes.&lt;br /&gt;
    chinButton = new JCheckBox(&amp;quot;Chin&amp;quot;);&lt;br /&gt;
    chinButton.setMnemonic(KeyEvent.VK_C);&lt;br /&gt;
    chinButton.setSelected(true);&lt;br /&gt;
    glassesButton = new JCheckBox(&amp;quot;Glasses&amp;quot;);&lt;br /&gt;
    glassesButton.setMnemonic(KeyEvent.VK_G);&lt;br /&gt;
    glassesButton.setSelected(true);&lt;br /&gt;
    hairButton = new JCheckBox(&amp;quot;Hair&amp;quot;);&lt;br /&gt;
    hairButton.setMnemonic(KeyEvent.VK_H);&lt;br /&gt;
    hairButton.setSelected(true);&lt;br /&gt;
    teethButton = new JCheckBox(&amp;quot;Teeth&amp;quot;);&lt;br /&gt;
    teethButton.setMnemonic(KeyEvent.VK_T);&lt;br /&gt;
    teethButton.setSelected(true);&lt;br /&gt;
    // Register a listener for the check boxes.&lt;br /&gt;
    chinButton.addItemListener(this);&lt;br /&gt;
    glassesButton.addItemListener(this);&lt;br /&gt;
    hairButton.addItemListener(this);&lt;br /&gt;
    teethButton.addItemListener(this);&lt;br /&gt;
    // Indicates what&amp;quot;s on the geek.&lt;br /&gt;
    choices = new StringBuffer(&amp;quot;cght&amp;quot;);&lt;br /&gt;
    // Set up the picture label&lt;br /&gt;
    pictureLabel = new JLabel();&lt;br /&gt;
    pictureLabel.setFont(pictureLabel.getFont().deriveFont(Font.ITALIC));&lt;br /&gt;
    updatePicture();&lt;br /&gt;
    // Put the check boxes in a column in a panel&lt;br /&gt;
    JPanel checkPanel = new JPanel(new GridLayout(0, 1));&lt;br /&gt;
    checkPanel.add(chinButton);&lt;br /&gt;
    checkPanel.add(glassesButton);&lt;br /&gt;
    checkPanel.add(hairButton);&lt;br /&gt;
    checkPanel.add(teethButton);&lt;br /&gt;
    add(checkPanel, BorderLayout.LINE_START);&lt;br /&gt;
    add(pictureLabel, BorderLayout.CENTER);&lt;br /&gt;
    setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));&lt;br /&gt;
  }&lt;br /&gt;
  /** Listens to the check boxes. */&lt;br /&gt;
  public void itemStateChanged(ItemEvent e) {&lt;br /&gt;
    int index = 0;&lt;br /&gt;
    char c = &amp;quot;-&amp;quot;;&lt;br /&gt;
    Object source = e.getItemSelectable();&lt;br /&gt;
    if (source == chinButton) {&lt;br /&gt;
      index = 0;&lt;br /&gt;
      c = &amp;quot;c&amp;quot;;&lt;br /&gt;
    } else if (source == glassesButton) {&lt;br /&gt;
      index = 1;&lt;br /&gt;
      c = &amp;quot;g&amp;quot;;&lt;br /&gt;
    } else if (source == hairButton) {&lt;br /&gt;
      index = 2;&lt;br /&gt;
      c = &amp;quot;h&amp;quot;;&lt;br /&gt;
    } else if (source == teethButton) {&lt;br /&gt;
      index = 3;&lt;br /&gt;
      c = &amp;quot;t&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    // Now that we know which button was pushed, find out&lt;br /&gt;
    // whether it was selected or deselected.&lt;br /&gt;
    if (e.getStateChange() == ItemEvent.DESELECTED) {&lt;br /&gt;
      c = &amp;quot;-&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    // Apply the change to the string.&lt;br /&gt;
    choices.setCharAt(index, c);&lt;br /&gt;
    updatePicture();&lt;br /&gt;
  }&lt;br /&gt;
  protected void updatePicture() {&lt;br /&gt;
    // Get the icon corresponding to the image.&lt;br /&gt;
    ImageIcon icon = createImageIcon(&amp;quot;images/geek/geek-&amp;quot; + choices.toString()&lt;br /&gt;
        + &amp;quot;.gif&amp;quot;);&lt;br /&gt;
    pictureLabel.setIcon(icon);&lt;br /&gt;
    pictureLabel.setToolTipText(choices.toString());&lt;br /&gt;
    if (icon == null) {&lt;br /&gt;
      pictureLabel.setText(&amp;quot;Missing Image&amp;quot;);&lt;br /&gt;
    } else {&lt;br /&gt;
      pictureLabel.setText(null);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /** Returns an ImageIcon, or null if the path was invalid. */&lt;br /&gt;
  protected static ImageIcon createImageIcon(String path) {&lt;br /&gt;
    java.net.URL imgURL = CheckBoxDemo.class.getResource(path);&lt;br /&gt;
    if (imgURL != null) {&lt;br /&gt;
      return new ImageIcon(imgURL);&lt;br /&gt;
    } else {&lt;br /&gt;
      System.err.println(&amp;quot;Couldn&amp;quot;t find file: &amp;quot; + path);&lt;br /&gt;
      return null;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  /**&lt;br /&gt;
   * Create the GUI and show it. For thread safety, this method should be&lt;br /&gt;
   * invoked from the event-dispatching thread.&lt;br /&gt;
   */&lt;br /&gt;
  private static void createAndShowGUI() {&lt;br /&gt;
    // Create and set up the window.&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;CheckBoxDemo&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    // Create and set up the content pane.&lt;br /&gt;
    JComponent newContentPane = new CheckBoxDemo();&lt;br /&gt;
    newContentPane.setOpaque(true); // content panes must be opaque&lt;br /&gt;
    frame.setContentPane(newContentPane);&lt;br /&gt;
    // Display the window.&lt;br /&gt;
    frame.pack();&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    // Schedule a job for the event-dispatching thread:&lt;br /&gt;
    // creating and showing this application&amp;quot;s GUI.&lt;br /&gt;
    javax.swing.SwingUtilities.invokeLater(new Runnable() {&lt;br /&gt;
      public void run() {&lt;br /&gt;
        createAndShowGUI();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Listening to JCheckBox Events with a ChangeListener: listen to armed, pressed, selected, or released state ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.swing.AbstractButton;&lt;br /&gt;
import javax.swing.ButtonModel;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.event.ChangeEvent;&lt;br /&gt;
import javax.swing.event.ChangeListener;&lt;br /&gt;
public class JCheckBoxChangeListener {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Iconizing CheckBox&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JCheckBox aCheckBox4 = new JCheckBox(&amp;quot;Stuffed Crust&amp;quot;);&lt;br /&gt;
    // Define ChangeListener&lt;br /&gt;
    ChangeListener changeListener = new ChangeListener() {&lt;br /&gt;
      public void stateChanged(ChangeEvent changeEvent) {&lt;br /&gt;
        AbstractButton abstractButton =&lt;br /&gt;
          (AbstractButton)changeEvent.getSource();&lt;br /&gt;
        ButtonModel buttonModel = abstractButton.getModel();&lt;br /&gt;
        boolean armed = buttonModel.isArmed();&lt;br /&gt;
        boolean pressed = buttonModel.isPressed();&lt;br /&gt;
        boolean selected = buttonModel.isSelected();&lt;br /&gt;
        System.out.println(&amp;quot;Changed: &amp;quot; + armed + &amp;quot;/&amp;quot; + pressed + &amp;quot;/&amp;quot; +&lt;br /&gt;
          selected);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    aCheckBox4.addChangeListener(changeListener);&lt;br /&gt;
    frame.add(aCheckBox4);&lt;br /&gt;
    frame.setSize(300, 200);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;Changed: false/false/false&lt;br /&gt;
Changed: true/false/false&lt;br /&gt;
Changed: true/true/false&lt;br /&gt;
Changed: true/true/true&lt;br /&gt;
Changed: true/false/true&lt;br /&gt;
Changed: false/false/true&lt;br /&gt;
Changed: false/false/true&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Listening to JCheckBox Events with an ActionListener ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import javax.swing.AbstractButton;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class JCheckBoxActionListener {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Iconizing CheckBox&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JCheckBox aCheckBox4 = new JCheckBox(&amp;quot;Stuffed Crust&amp;quot;);&lt;br /&gt;
    ActionListener actionListener = new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent actionEvent) {&lt;br /&gt;
        AbstractButton abstractButton = (AbstractButton) actionEvent.getSource();&lt;br /&gt;
        boolean selected = abstractButton.getModel().isSelected();&lt;br /&gt;
        System.out.println(selected);&lt;br /&gt;
        // abstractButton.setText(newLabel);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    aCheckBox4.addActionListener(actionListener);&lt;br /&gt;
    frame.add(aCheckBox4);&lt;br /&gt;
    frame.setSize(300, 200);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Listening to JCheckBox Events with an ItemListener ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.event.ItemEvent;&lt;br /&gt;
import java.awt.event.ItemListener;&lt;br /&gt;
import javax.swing.AbstractButton;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
public class JCheckBoxItemListener {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;Iconizing CheckBox&amp;quot;);&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JCheckBox aCheckBox4 = new JCheckBox(&amp;quot;Stuffed Crust&amp;quot;);&lt;br /&gt;
    ItemListener itemListener = new ItemListener() {&lt;br /&gt;
      public void itemStateChanged(ItemEvent itemEvent) {&lt;br /&gt;
        AbstractButton abstractButton = (AbstractButton)itemEvent.getSource();&lt;br /&gt;
        Color foreground = abstractButton.getForeground();&lt;br /&gt;
        Color background = abstractButton.getBackground();&lt;br /&gt;
        int state = itemEvent.getStateChange();&lt;br /&gt;
        if (state == ItemEvent.SELECTED) {&lt;br /&gt;
          abstractButton.setForeground(background);&lt;br /&gt;
          abstractButton.setBackground(foreground);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    aCheckBox4.addItemListener(itemListener);&lt;br /&gt;
    frame.add(aCheckBox4);&lt;br /&gt;
    frame.setSize(300, 200);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Using JCheckBox ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.FlowLayout;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
public class JCheckBoxTest {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    JFrame.setDefaultLookAndFeelDecorated(true);&lt;br /&gt;
    JFrame frame = new JFrame(&amp;quot;JCheckBox Test&amp;quot;);&lt;br /&gt;
    frame.setLayout(new FlowLayout());&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JCheckBox ac = new JCheckBox(&amp;quot;A/C&amp;quot;);&lt;br /&gt;
    ac.setSelected(true);&lt;br /&gt;
    JCheckBox cdPlayer = new JCheckBox(&amp;quot;A&amp;quot;);&lt;br /&gt;
    JCheckBox cruiseControl = new JCheckBox(&amp;quot;B&amp;quot;);&lt;br /&gt;
    JCheckBox keylessEntry = new JCheckBox(&amp;quot;C&amp;quot;);&lt;br /&gt;
    JCheckBox antiTheft = new JCheckBox(&amp;quot;D&amp;quot;);&lt;br /&gt;
    JCheckBox centralLock = new JCheckBox(&amp;quot;E&amp;quot;);&lt;br /&gt;
    frame.add(new JLabel(&amp;quot;Car Features&amp;quot;));&lt;br /&gt;
    frame.add(ac);&lt;br /&gt;
    frame.add(cdPlayer);&lt;br /&gt;
    frame.add(cruiseControl);&lt;br /&gt;
    frame.add(keylessEntry);&lt;br /&gt;
    frame.add(antiTheft);&lt;br /&gt;
    frame.add(centralLock);&lt;br /&gt;
    frame.pack();&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>