defaults = UIManager.getLookAndFeelDefaults();
  public static Border getRadioButtonBorder()  {    UIDefaults defaults;    Border outer;    defaults = UIManager.getLookAndFeelDefaults();    /* The keys for UIDefaults have been determined by writing a     * test program that dumps the UIDefaults to stdout; that program     * was run on a JDK 1.4.1_01 for GNU/Linux. Note that in the API,     * the key "light" is usually called "highlight", and "highlight"     * is usually called "lightHighlight".     */    outer = new RadioButtonBorder(      defaults.getColor("RadioButton.shadow"),      defaults.getColor("RadioButton.darkShadow"),      defaults.getColor("RadioButton.light"),      defaults.getColor("RadioButton.highlight"));    /* While the inner border is shared between multiple buttons, we     * do not share the outer border because RadioButtonBorders, being     * ButtonBorders, store their border colors. We cannot guarantee     * that the colors (which come from UIDefaults) are unchanged     * between invocations of getButtonBorder. We could store the last     * colors, and share the button border if the colors are the same     * as in the last invocation, but it probably is not worth the     * effort.     */    return new BorderUIResource.CompoundBorderUIResource(      outer,      /* inner */ getMarginBorder());  }