In several of the breadboard classes (e.g., OneButtonBreadboard
), there is a built-in timer that allows a block of code to be executed every $n$ milliseconds, once it has been started.
The following provides an example:
import java.awt.Color; import breadboards.Breadboard; import breadboards.GOval; public class Blinker extends Breadboard { // if we want access to a variable in all of the methods below // we declare it up here [ inside the class, but outside of run() ].. GOval circle; int tickNum; public Blinker() { // build a circle (i.e., a GOval) and add it to the canvas.. circle = new GOval(200,200); circle.setFilled(true); circle.setFillColor(Color.BLUE); this.add(circle); // keep track of what tick you are on with "tickNum" tickNum = 0; // set up timer and start it.. this.getTimer().setDelay(300); // sets delay between // "timer ticks" to be // 300 milliseconds this.getTimer().start(); // starts the timer "ticking" } public void onTimerTick() { // with each tick of the timer, change the color of the circle tickNum++; circle.setFillColor(tickNum % 2 == 0 ? Color.RED : Color.GREEN); } public static void main(String[] args) { new Blinker(); } }