BasicRadioButtonUI.java [plain text]
package javax.swing.plaf.basic;
import javax.swing.*;
import javax.swing.plaf.*;
import java.awt.*;
public class BasicRadioButtonUI extends BasicToggleButtonUI
{
int large_circle_width = 20;
int circle_width = large_circle_width - 8;
public static ComponentUI createUI(final JComponent c) {
return new BasicRadioButtonUI();
}
public void installUI(final JComponent c) {
super.installUI(c);
}
public Dimension getPreferredSize(JComponent c)
{
AbstractButton b = (AbstractButton)c;
Dimension d = BasicGraphicsUtils.getPreferredSize(b,
gap,
b.getText(),
b.getIcon(),
b.getVerticalAlignment(),
b.getHorizontalAlignment(),
b.getHorizontalTextPosition(),
b.getVerticalTextPosition());
d.width += large_circle_width;
d.height = Math.max(large_circle_width, d.height);
return d;
}
protected void paintFocus(Graphics g,
JComponent c,
Rectangle vr,
Rectangle tr,
Rectangle ir)
{
}
protected void paintIcon(Graphics g,
JComponent c,
Rectangle iconRect)
{
}
protected void paintButtonPressed(Graphics g,
JComponent b)
{
Dimension size = b.getSize();
paintButtonNormal(g, b);
int x = gap;
int y = gap;
int diffp = 2;
int diff = 3;
g.setColor(textColor);
g.fillArc(x+diffp, y+diffp,
circle_width-diff, circle_width-diff,
0, 360);
}
protected void paintButtonNormal(Graphics g,
JComponent c)
{
AbstractButton b = (AbstractButton) c;
Dimension size = b.getSize();
g.setColor(normalBackgroundColor);
g.fillRect(1,1,size.width-2, size.height-2);
int x = gap;
int y = gap;
g.setColor(pressedBackgroundColor);
g.drawArc(x, y,
circle_width, circle_width,
0, 360);
g.setColor(new Color(255,255,255));
g.drawArc(x, y,
circle_width+1, circle_width+1,
145, 160);
}
protected void paintText(Graphics g,
JComponent c,
Rectangle textRect,
String text)
{
g.setColor(c.isEnabled() ? textColor : disabledTextColor);
BasicGraphicsUtils.drawString(g,
text,
0,
textRect.x + circle_width + gap,
textRect.y);
}
}