1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133
/* * @(#)CheckboxGroup.java 1.37 05/11/17 * * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package java.awt; /** * The <code>CheckboxGroup</code> class is used to group together * a set of <code>Checkbox</code> buttons. * <p> * Exactly one check box button in a <code>CheckboxGroup</code> can * be in the "on" state at any given time. Pushing any * button sets its state to "on" and forces any other button that * is in the "on" state into the "off" state. * <p> * The following code example produces a new check box group, * with three check boxes: * <p> * <hr><blockquote><pre> * setLayout(new GridLayout(3, 1)); * CheckboxGroup cbg = new CheckboxGroup(); * add(new Checkbox("one", cbg, true)); * add(new Checkbox("two", cbg, false)); * add(new Checkbox("three", cbg, false)); * </pre></blockquote><hr> * <p> * This image depicts the check box group created by this example: * <p> * <img src="doc-files/CheckboxGroup-1.gif" * alt="Shows three checkboxes, arranged vertically, labeled one, two, and three. Checkbox one is in the on state." * ALIGN=center HSPACE=10 VSPACE=7> * <p> * @version 1.37 11/17/05 * @author Sami Shaio * @see java.awt.Checkbox * @since JDK1.0 */ public class CheckboxGroup implements java.io.Serializable { /** * The current choice. * @serial * @see #getCurrent() * @see #setCurrent(Checkbox) */ Checkbox selectedCheckbox = null; /* * JDK 1.1 serialVersionUID */ private static final long serialVersionUID = 3729780091441768983L; /** * Creates a new instance of <code>CheckboxGroup</code>. */ public CheckboxGroup() { } /** * Gets the current choice from this check box group. * The current choice is the check box in this * group that is currently in the "on" state, * or <code>null</code> if all check boxes in the * group are off. * @return the check box that is currently in the * "on" state, or <code>null</code>. * @see java.awt.Checkbox * @see java.awt.CheckboxGroup#setSelectedCheckbox * @since JDK1.1 */ public Checkbox getSelectedCheckbox() { return getCurrent(); } /** * @deprecated As of JDK version 1.1, * replaced by <code>getSelectedCheckbox()</code>. */ @Deprecated public Checkbox getCurrent() { return selectedCheckbox; } /** * Sets the currently selected check box in this group * to be the specified check box. * This method sets the state of that check box to "on" and * sets all other check boxes in the group to be off. * <p> * If the check box argument is <tt>null</tt>, all check boxes * in this check box group are deselected. If the check box argument * belongs to a different check box group, this method does * nothing. * @param box the <code>Checkbox</code> to set as the * current selection. * @see java.awt.Checkbox * @see java.awt.CheckboxGroup#getSelectedCheckbox * @since JDK1.1 */ public void setSelectedCheckbox(Checkbox box) { setCurrent(box); } /** * @deprecated As of JDK version 1.1, * replaced by <code>setSelectedCheckbox(Checkbox)</code>. */ @Deprecated public synchronized void setCurrent(Checkbox box) { if (box != null && box.group != this) { return; } Checkbox oldChoice = this.selectedCheckbox; this.selectedCheckbox = box; if (oldChoice != null && oldChoice != box && oldChoice.group == this) { oldChoice.setState(false); } if (box != null && oldChoice != box && !box.getState()) { box.setStateInternal(true); } } /** * Returns a string representation of this check box group, * including the value of its current selection. * @return a string representation of this check box group. */ public String toString() { return getClass().getName() + "[selectedCheckbox=" + selectedCheckbox + "]"; } }