javax.swing.plaf.basic
Class BasicBorders.RadioButtonBorder

java.lang.Object
  extended by javax.swing.border.AbstractBorder
      extended by javax.swing.plaf.basic.BasicBorders.ButtonBorder
          extended by javax.swing.plaf.basic.BasicBorders.RadioButtonBorder
All Implemented Interfaces:
Serializable, Border, UIResource
Enclosing class:
BasicBorders

public static class BasicBorders.RadioButtonBorder
extends BasicBorders.ButtonBorder

A border for drawing radio buttons in the Basic look and feel.

[A screen shot of this border]

Note about the screen shot: Normally, the borderPainted property is false for JRadioButtons. For this screen shot, it has been set to true so the borders get drawn. Also, a concretization of the Basic look and would typically provide icons for the various states of radio buttons.

Note that the focus rectangle is invisible If the radio button is currently selected. While it might be debatable whether this makes a lot of sense, this behavior can be observed in the Sun reference implementation (in JDK 1.3.1 and 1.4.1). The Classpath implementation tries to exactly replicate the JDK appearance.

See Also:
BasicGraphicsUtils.drawBezel(java.awt.Graphics, int, int, int, int, boolean, boolean, java.awt.Color, java.awt.Color, java.awt.Color, java.awt.Color), Serialized Form

Field Summary
 
Fields inherited from class javax.swing.plaf.basic.BasicBorders.ButtonBorder
darkShadow, highlight, lightHighlight, shadow
 
Constructor Summary
BasicBorders.RadioButtonBorder(Color shadow, Color darkShadow, Color highlight, Color lightHighlight)
          Constructs a new border for drawing a JRadioButton in the Basic look and feel.
 
Method Summary
 Insets getBorderInsets(Component c)
          Measures the width of this border.
 Insets getBorderInsets(Component c, Insets insets)
          Measures the width of this border, storing the results into a pre-existing Insets object.
 void paintBorder(Component c, Graphics g, int x, int y, int width, int height)
          Paints the RadioButtonBorder around a given component.
 
Methods inherited from class javax.swing.border.AbstractBorder
getInteriorRectangle, getInteriorRectangle, isBorderOpaque
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BasicBorders.RadioButtonBorder

public BasicBorders.RadioButtonBorder(Color shadow,
                                      Color darkShadow,
                                      Color highlight,
                                      Color lightHighlight)
Constructs a new border for drawing a JRadioButton in the Basic look and feel.

Parameters:
shadow - the shadow color.
darkShadow - a darker variant of the shadow color.
highlight - the highlight color.
lightHighlight - a brighter variant of the highlight color.
Method Detail

paintBorder

public void paintBorder(Component c,
                        Graphics g,
                        int x,
                        int y,
                        int width,
                        int height)
Paints the RadioButtonBorder around a given component.

The Sun implementation always seems to draw exactly the same border, irrespective of the state of the button. This is rather surprising, but GNU Classpath emulates the observable behavior.

Specified by:
paintBorder in interface Border
Overrides:
paintBorder in class BasicBorders.ButtonBorder
Parameters:
c - the component whose border is to be painted.
g - the graphics for painting.
x - the horizontal position for painting the border.
y - the vertical position for painting the border.
width - the width of the available area for painting the border.
height - the height of the available area for painting the border.
See Also:
BasicGraphicsUtils.drawBezel(java.awt.Graphics, int, int, int, int, boolean, boolean, java.awt.Color, java.awt.Color, java.awt.Color, java.awt.Color)

getBorderInsets

public Insets getBorderInsets(Component c)
Measures the width of this border.

Specified by:
getBorderInsets in interface Border
Overrides:
getBorderInsets in class BasicBorders.ButtonBorder
Parameters:
c - the component whose border is to be measured.
Returns:
an Insets object whose left, right, top and bottom fields indicate the width of the border at the respective edge.
See Also:
getBorderInsets(java.awt.Component, java.awt.Insets)

getBorderInsets

public Insets getBorderInsets(Component c,
                              Insets insets)
Measures the width of this border, storing the results into a pre-existing Insets object.

Overrides:
getBorderInsets in class BasicBorders.ButtonBorder
Parameters:
insets - an Insets object for holding the result values. After invoking this method, the left, right, top and bottom fields indicate the width of the border at the respective edge.
c - the component that the border applies to (ignored here, subclasses may use it).
Returns:
the same object that was passed for insets.
See Also:
getBorderInsets(Component)