Re: Could this be done better
// private classes
private class Colour {
// public
public Colour(Color color, String description) {
this.color = color;
this.description = description;
}
public Color getColor() {
return color;
}
public String getDescription() {
return description;
}
// private
private Color color;
private String description;
}
private class SwitchColour extends TimerTask {
public void run() {
updateColour(getNextColour());
}
}
//private functions
private Colour getCurrentColour() {
return colours[currentColour];
}
private Colour getNextColour() {
currentColour = (currentColour + 1) % colours.length;
return getCurrentColour();
}
As much as I like your class Colour, it is probably easier and simpler
to use an enum in this case.
import java.awt.*;
public class test {
enum Colours {
Red(Color.RED),Blue(Color.BLUE),Green(Color.GREEN);
private final Color value;
Colours(Color value) {
this.value = value;
}
public Color value() {
return value;
}
}
public static void main(String... args) {
System.out.println(Colours.Red);
System.out.println(Colours.Red.value());
System.out.println();
for (Colours colour : Colours.values())
System.out.println(colour+":"+colour.value());
}
}
C:\Users\Knute Johnson>java test
Red
java.awt.Color[r=255,g=0,b=0]
Red:java.awt.Color[r=255,g=0,b=0]
Blue:java.awt.Color[r=0,g=0,b=255]
Green:java.awt.Color[r=0,g=255,b=0]
--
Knute Johnson
--
Knute Johnson