diff options
author | pjain <pjain@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-04-07 18:12:58 +0000 |
---|---|---|
committer | pjain <pjain@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-04-07 18:12:58 +0000 |
commit | 28fdfa0225c92310a6f0d60f0cf8c334380e0828 (patch) | |
tree | ba4b0a7a26bf46ea298496a434496695db55bdc1 /java/gjt/StateButton.java | |
parent | 9c4a1450aec6c149f6491194a48f34a57ed4c39b (diff) | |
download | ATCD-28fdfa0225c92310a6f0d60f0cf8c334380e0828.tar.gz |
Added gjt to CVS
Diffstat (limited to 'java/gjt/StateButton.java')
-rw-r--r-- | java/gjt/StateButton.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/java/gjt/StateButton.java b/java/gjt/StateButton.java new file mode 100644 index 00000000000..6de20a76f98 --- /dev/null +++ b/java/gjt/StateButton.java @@ -0,0 +1,45 @@ +package gjt; + +import java.awt.Image; + +/** + * An ImageButton that cycles through a series of images. The + * image advances to the next image in the series every time + * the button is activated.<p> + * + * Note that the cycling is actually performed by the buttons' + * controller - a StateButtonController.<p> + * + * @version 1.0, Apr 1 1996 + * @author David Geary + * @see ImageButton + * @see StateButtonController + * @see gjt.test.StateButtonTest + */ +public class StateButton extends ImageButton { + private Image[] images; + private int state = 0; + private int numStates; + + public StateButton(Image[] images) { + super(images[0]); + + this.images = images; + numStates = images.length; + setController(new StateButtonController(this)); + waitForImages(); + } + public Image nextImage() { + if(state + 1 < numStates) state++; + else state = 0; + + return images[state]; + } + public int state() { + return state; + } + private void waitForImages() { + for(int i=0; i < images.length; ++i) + Util.waitForImage(this, images[i]); + } +} |