FileDocCategorySizeDatePackage
JCheckBox.javaAPI DocJava SE 5 API12299Fri Aug 26 14:57:54 BST 2005javax.swing

JCheckBox

public class JCheckBox extends JToggleButton implements Accessible
An implementation of a check box -- an item that can be selected or deselected, and which displays its state to the user. By convention, any number of check boxes in a group can be selected. See How to Use Buttons, Check Boxes, and Radio Buttons in The Java Tutorial for examples and information on using check boxes.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see {@link java.beans.XMLEncoder}.

see
JRadioButton
beaninfo
attribute: isContainer false description: A component which can be selected or deselected.
version
1.73 12/19/03
author
Jeff Dinkins

Fields Summary
public static final String
BORDER_PAINTED_FLAT_CHANGED_PROPERTY
Identifies a change to the flat property.
private boolean
flat
private static final String
uiClassID
Constructors Summary
public JCheckBox()
Creates an initially unselected check box button with no text, no icon.



                     
       
        this(null, null, false);
    
public JCheckBox(Icon icon)
Creates an initially unselected check box with an icon.

param
icon the Icon image to display

        this(null, icon, false);
    
public JCheckBox(Icon icon, boolean selected)
Creates a check box with an icon and specifies whether or not it is initially selected.

param
icon the Icon image to display
param
selected a boolean value indicating the initial selection state. If true the check box is selected

        this(null, icon, selected);
    
public JCheckBox(String text)
Creates an initially unselected check box with text.

param
text the text of the check box.

        this(text, null, false);
    
public JCheckBox(Action a)
Creates a check box where properties are taken from the Action supplied.

since
1.3

        this();
	setAction(a);
    
public JCheckBox(String text, boolean selected)
Creates a check box with text and specifies whether or not it is initially selected.

param
text the text of the check box.
param
selected a boolean value indicating the initial selection state. If true the check box is selected

        this(text, null, selected);
    
public JCheckBox(String text, Icon icon)
Creates an initially unselected check box with the specified text and icon.

param
text the text of the check box.
param
icon the Icon image to display

        this(text, icon, false);
    
public JCheckBox(String text, Icon icon, boolean selected)
Creates a check box with text and icon, and specifies whether or not it is initially selected.

param
text the text of the check box.
param
icon the Icon image to display
param
selected a boolean value indicating the initial selection state. If true the check box is selected

        super(text, icon, selected);
        setUIProperty("borderPainted", Boolean.FALSE);
        setHorizontalAlignment(LEADING);
    
Methods Summary
protected voidconfigurePropertiesFromAction(javax.swing.Action a)
Factory method which sets the ActionEvent source's properties according to values from the Action instance. The properties which are set may differ for subclasses. By default, the properties which get set are Text, Mnemonic, Enabled, ActionCommand, and ToolTipText.

param
a the Action from which to get the properties, or null
since
1.3
see
Action
see
#setAction

        String[] types = { Action.MNEMONIC_KEY, Action.NAME,
                           Action.SHORT_DESCRIPTION,
                           Action.ACTION_COMMAND_KEY, "enabled" };
        configurePropertiesFromAction(a, types);
    
protected java.beans.PropertyChangeListenercreateActionPropertyChangeListener(javax.swing.Action a)
Factory method which creates the PropertyChangeListener used to update the ActionEvent source as properties change on its Action instance. Subclasses may override this in order to provide their own PropertyChangeListener if the set of properties which should be kept up to date differs from the default properties (Text, Icon, Enabled, ToolTipText). Note that PropertyChangeListeners should avoid holding strong references to the ActionEvent source, as this may hinder garbage collection of the ActionEvent source and all components in its containment hierarchy.

since
1.3
see
Action
see
#setAction

        return new AbstractActionPropertyChangeListener(this, a) {
	    public void propertyChange(PropertyChangeEvent e) {	    
		String propertyName = e.getPropertyName();
		AbstractButton button = (AbstractButton)getTarget();
		if (button == null) {   //WeakRef GC'ed in 1.2
		    Action action = (Action)e.getSource();
		    action.removePropertyChangeListener(this);
		} else {
		    if (propertyName.equals(Action.NAME)) {
			String text = (String) e.getNewValue();
			button.setText(text);
			button.repaint();
		    } else if (propertyName.equals(Action.SHORT_DESCRIPTION)) {
			String text = (String) e.getNewValue();
			button.setToolTipText(text);
		    } else if (propertyName.equals("enabled")) {
			Boolean enabledState = (Boolean) e.getNewValue();
			button.setEnabled(enabledState.booleanValue());
			button.repaint();
		    } else if (propertyName.equals(Action.ACTION_COMMAND_KEY)) {
                        button.setActionCommand((String)e.getNewValue());
		    } 
		}
	    }
	};
    
public javax.accessibility.AccessibleContextgetAccessibleContext()
Gets the AccessibleContext associated with this JCheckBox. For JCheckBoxes, the AccessibleContext takes the form of an AccessibleJCheckBox. A new AccessibleJCheckBox instance is created if necessary.

return
an AccessibleJCheckBox that serves as the AccessibleContext of this JCheckBox
beaninfo
expert: true description: The AccessibleContext associated with this CheckBox.

        if (accessibleContext == null) {
            accessibleContext = new AccessibleJCheckBox();
        }
        return accessibleContext;
    
public java.lang.StringgetUIClassID()
Returns a string that specifies the name of the L&F class that renders this component.

return
the string "CheckBoxUI"
see
JComponent#getUIClassID
see
UIDefaults#getUI
beaninfo
expert: true description: A string that specifies the name of the L&F class

        return uiClassID;
    
public booleanisBorderPaintedFlat()
Gets the value of the borderPaintedFlat property.

return
the value of the borderPaintedFlat property
see
#setBorderPaintedFlat

	return flat;
    
protected java.lang.StringparamString()
Returns a string representation of this JCheckBox. This method is intended to be used only for debugging purposes, and the content and format of the returned string may vary between implementations. The returned string may be empty but may not be null. specific new aspects of the JFC components.

return
a string representation of this JCheckBox.

	return super.paramString();
    
private voidreadObject(java.io.ObjectInputStream s)
See JComponent.readObject() for information about serialization in Swing.

        s.defaultReadObject();
	if (getUIClassID().equals(uiClassID)) {
	    updateUI();
	}
    
public voidsetBorderPaintedFlat(boolean b)
Sets the borderPaintedFlat property, which gives a hint to the look and feel as to the appearance of the check box border. This is usually set to true when a JCheckBox instance is used as a renderer in a component such as a JTable or JTree. The default value for the borderPaintedFlat property is false. This method fires a property changed event. Some look and feels might not implement flat borders; they will ignore this property.

param
b true requests that the border be painted flat; false requests normal borders
see
#isBorderPaintedFlat
beaninfo
bound: true attribute: visualUpdate true description: Whether the border is painted flat.

        boolean oldValue = flat;
        flat = b;
        firePropertyChange(BORDER_PAINTED_FLAT_CHANGED_PROPERTY, oldValue, flat);
        if (b != oldValue) {
            revalidate();
            repaint();
	}
    
public voidupdateUI()
Resets the UI property to a value from the current look and feel.

see
JComponent#updateUI

        setUI((ButtonUI)UIManager.getUI(this));
    
private voidwriteObject(java.io.ObjectOutputStream s)

        s.defaultWriteObject();
        if (getUIClassID().equals(uiClassID)) {
            byte count = JComponent.getWriteObjCounter(this);
            JComponent.setWriteObjCounter(this, --count);
            if (count == 0 && ui != null) {
                ui.installUI(this);
            }
        }