Timeout2
File: java/Timeout2/MyCanvas.java
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
public class MyCanvas extends JComponent {
/**
* Our basic shape, in canonical orientation, centered at 0, 0
*/
private Rectangle2D rect = new Rectangle2D.Double (-25, -25, 50, 50);
private Main parent;
public MyCanvas (Main parent) {
this.parent = parent;
}
public void paintComponent (Graphics g) {
Graphics2D g2 = (Graphics2D) g;
AffineTransform rot = new AffineTransform ();
AffineTransform trans = new AffineTransform ();
int nboxes = parent.getFrame();
for (int ibox=0; ibox<nboxes; ibox++) {
// First rotate about its center
rot.setToRotation (ibox/10.);
// Then move it somewhere
trans.setToTranslation (100+2*ibox, 100+2*ibox);
// Make a composite transform that does both jobs
trans.concatenate (rot);
// and apply it
Shape s = trans.createTransformedShape (rect);
g2.draw (s);
}
}
}