| ColorChangeSample.java |
1 package sample;
2
3 import java.util.Timer;
4 import java.util.TimerTask;
5 import java.util.Random;
6
7 import fi.jyu.mit.graphics.*;
8
9
10
11 /**
12 * Demonstoirdaan kuinka väriä voidaan vaihtaa
13 * @author vesal
14 */
15 public class ColorChangeSample {
16 /**
17 * Luokka aiheuttamaan "tapahtumia".
18 * @author vesal
19 *
20 */
21 public static class ColorChanger extends TimerTask {
22 private final Drawable shape;
23 private int r = 0;
24 private final Random rand = new Random();
25
26 /**
27 * Alustetaan uusi värinvaihta-olio
28 * @param shape kuvion, jonka väriä vaihdetaan
29 * @param dt aikaväli jolloin vaihtamsita tehdään
30 */
31 public ColorChanger(Drawable shape,long dt) {
32 super();
33 this.shape = shape;
34 new Timer().schedule(this,dt,dt);
35 }
36
37 /**
38 * Kun vaihtaja lähtee käyntiin, ajetaan tätä metodia
39 * valitun aikavälin tahtiin. Arvotaan kohdeoliolle uusi väri.
40 */
41 @Override
42 public void run() {
43 r = (r+10) % 256;
44 shape.setColor(rand.nextInt(256), rand.nextInt(256), rand.nextInt(256));
45 }
46 }
47
48 /**
49 * Piirretään viiva joka vaihtaa väriä ja toinen joka pyörii.
50 * @param args
51 */
52 @SuppressWarnings("unused")
53 public static void main(String[] args) {
54 EasyWindow window = new EasyWindow();
55 Line line = window.addLine(0,0,100,100);
56 window.showWindow();
57 new ColorChanger(line,120);
58
59 Line line2 = window.addLine(0,0, 150,0);
60 line2.setTransform(new TranslateMatrix(100,100,0));
61 new Rotator(line2,Axis.Z,1,50);
62 }
63
64 }
65