package animation; import java.util.TimerTask; import javax.swing.*; import java.awt.*; class Clock extends JPanel { double percentDone = 0.0; public void paintComponent(Graphics g) { int size = (getWidth() < getHeight()) ? (int)(.75 * getWidth()) : (int)(.75 * getHeight()); int left = (getWidth() - size) / 2; int top = (getHeight() - size) / 2; g.drawOval(left, top, size, size); g.fillArc(left, top, size, size, 90, -(int)(360 * percentDone)); } public void setPercentDone(double percent) { percentDone = percent; repaint(); } public Dimension getPreferredSize() { return new Dimension(100, 100); } }