package trident.swing.tracker;
import java.awt.*;
import java.awt.geom.Ellipse2D;
import javax.swing.JComponent;
public class BallPanel extends JComponent {
private float ballY;
public static final int RADIUS = 20;
public BallPanel() {
this.ballY = RADIUS;
}
public void setBallY(float ballY) {
this.ballY = ballY;
}
public float getBallY() {
return ballY;
}
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.setColor(Color.gray);
g2d.fillRect(0, 0, getWidth(), getHeight());
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
Shape shape = new Ellipse2D.Double(this.getWidth() / 2 - RADIUS,
this.ballY - RADIUS, 2 * RADIUS, 2 * RADIUS);
g2d.setPaint(new RadialGradientPaint(this.getWidth() / 2 - RADIUS / 4,
this.ballY - RADIUS / 5, RADIUS + RADIUS / 4, new float[] {
0.0f, 1.0f }, new Color[] { Color.green,
Color.green.darker().darker() }));
g2d.fill(shape);
g2d.setColor(new Color(0, 64, 0));
g2d.draw(shape);
g2d.dispose();
}
}