Index: javax/swing/JRadioButton.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/javax/swing/JRadioButton.java,v
retrieving revision 1.3.2.4
diff -u -r1.3.2.4 JRadioButton.java
--- javax/swing/JRadioButton.java 11 Aug 2004 13:57:35 -0000 1.3.2.4
+++ javax/swing/JRadioButton.java 27 Sep 2004 06:01:31 -0000
@@ -39,70 +39,219 @@
package javax.swing;
import javax.accessibility.AccessibleContext;
+import javax.accessibility.AccessibleRole;
+import javax.swing.plaf.ButtonUI;
+/**
+ * The JRadioButton component provides a visually selectable
+ * button with mutually exclusive behaviour within a ButtonGroup.
+ * A series of radio buttons can be used to provide options to the user,
+ * where the user can only select one of the available options. The state
+ * of the button is provided by the superclass, JToggleButton.
+ * JRadioButton adds the additional behaviour, that if two
+ * or more radio buttons are grouped together, the selection of one implies
+ * the deselection of the other buttons within the group.
+ *
+ *
+ * Buttons are grouped by adding each instance to a ButtonGroup.
+ * The existence of such a grouping is not reflected visually, so other means
+ * should be used to denote this. For instance, the grouped buttons can be placed
+ * within the same panel, possibly with an appropriate border to denote
+ * the connection between the components.
+ *
+ * @author Michael Koch AccessibleRole, describing
+ * the role of the toggle button.
+ */
+ public AccessibleRole getAccessibleRole()
+ {
+ return AccessibleRole.RADIO_BUTTON;
+ }
+
+ }
+
+ /**
+ * Constructs an unselected radio button with no text or icon.
+ */
public JRadioButton()
{
- this(null, null);
+ this(null, null, false);
}
+ /**
+ * Constructs a radio button using the labelling, state
+ * and icon specified by the supplied action.
+ *
+ * @param a the action to use to define the properties of the button.
+ */
public JRadioButton(Action a)
{
this();
setAction(a);
}
+ /**
+ * Constructs an unselected radio button with the supplied icon
+ * and no text.
+ *
+ * @param icon the icon to use.
+ */
public JRadioButton(Icon icon)
{
- this(null, icon);
+ this(null, icon, false);
}
+ /**
+ * Constructs a radio button with the supplied icon and state.
+ *
+ * @param icon the icon to use.
+ * @param selected if true, the radio button is initially in the
+ * selected state. Otherwise, the button is unselected.
+ */
public JRadioButton(Icon icon, boolean selected)
{
this(null, icon, selected);
}
+ /**
+ * Constructs an unselected radio button using the supplied text
+ * and no icon.
+ *
+ * @param text the text to use.
+ */
public JRadioButton(String text)
{
- this(text, null);
+ this(text, null, false);
}
+ /**
+ * Constructs a radio button with the supplied text and state.
+ *
+ * @param text the text to use.
+ * @param selected if true, the radio button is initially in the
+ * selected state. Otherwise, the button is unselected.
+ */
public JRadioButton(String text, boolean selected)
{
this(text, null, selected);
}
+ /**
+ * Constructs an unselected radio button with the supplied text
+ * and icon.
+ *
+ * @param text the text to use.
+ * @param icon the icon to use.
+ */
public JRadioButton(String text, Icon icon)
{
- super(text, icon);
+ this(text, icon, false);
+ }
+
+ /**
+ * Constructs a radio button with the supplied text, icon and state.
+ *
+ * @param text the text to use.
+ * @param icon the icon to use.
+ * @param selected if true, the radio button is initially in the
+ * selected state. Otherwise, the button is unselected.
+ */
+ public JRadioButton(String text, Icon icon, boolean selected)
+ {
+ super(text, icon, selected);
borderPainted = false;
contentAreaFilled = false;
}
- public JRadioButton(String text, Icon icon, boolean selected)
+ /**
+ * Returns the accessible context for this JRadioButton,
+ * in the form of an instance of AccessibleJRadioButton.
+ * The context is created, if necessary.
+ *
+ * @return the associated context
+ */
+ public AccessibleContext getAccessibleContext()
+ {
+ /* Create the context if this is the first request */
+ if (accessibleContext == null)
+ {
+ /* Create the context */
+ accessibleContext = new AccessibleJRadioButton();
+ }
+ return accessibleContext;
+ }
+
+ /**
+ * Returns a string specifying the name of the Look and Feel UI class
+ * that renders this component.
+ *
+ * @return the Look and Feel UI class for JRadioButtons
+ * as a String.
+ */
+ public String getUIClassID()
{
+ return "RadioButtonUI";
}
-
- public AccessibleContext getAccessibleContext()
- {
- //Gets the AccessibleContext associated with this JRadioButton.
- return null;
- }
- public String getUIClassID()
- {
- //Returns a string that specifies the name of the Look and Feel
- //class that renders this component.
- return "RadioButtonUI";
- }
+ /**
+ * Returns a string representation of this component for debugging use.
+ * Users should not depend on anything as regards the content or formatting
+ * of this string, except for the fact that the returned string may never be
+ * null (only empty).
+ *
+ * @return the component in String form for debugging.
+ */
+ protected String paramString()
+ {
+ return "JRadioButton";
+ }
- protected String paramString()
- {
- return "JRadioButton";
- }
+ /**
+ * This method resets the radio button's UI delegate to the default UI for
+ * the current look and feel.
+ */
+ public void updateUI()
+ {
+ /*
+ I can't see any difference between this and the superclass one,
+ but Sun reimplements it... there is no RadioButtonUI class for it
+ to be cast to.
+ */
+ setUI((ButtonUI) UIManager.getUI(this));
+ }
+
}