public AnimationSample() {
initComponents();
DefaultDrawingView view = new DefaultDrawingView();
view.setDrawingDoubleBuffered(false);
add(view);
setSize(400, 400);
Drawing d = new DefaultDrawing();
d.set(CANVAS_FILL_COLOR, new Color(0x76a9d2));
final EllipseFigure ellipse = new EllipseFigure(160, 160, 80, 80);
ellipse.set(STROKE_WIDTH, 7d);
d.add(ellipse);
view.setDrawing(d);
Timer t = new Timer(10, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
double alpha = 2d * Math.PI * (System.currentTimeMillis() % 1000) / 1000d;
ellipse.willChange();
ellipse.setBounds(new Rectangle2D.Double(160 + Math.sin(alpha) * 100, 160 + Math.cos(alpha) * 100, 80, 80));
ellipse.changed();
}
});
t.setRepeats(true);
t.start();
}