import java.awt.*; import java.applet.*; // This code can test either the version of AMDProgressBar which // subclasses Canvas, or the version which runs embedded in // another AWT component (AMDProgressBarEmbed). // // Code labeled [embed] should be included ONLY to test only // the embedded version. Code labeled [canvas] should be // included to test only the Canvas version. public class ProgressTest extends Applet implements Runnable { final static String MESSAGES[] = { "Revitalizing cortex...", "Subdividing keys...", "Extracting vice parts...", "Eradicating remnants..."}; final static Font FONT = new Font("Helvetica", Font.PLAIN, 14); final static Color COLOR = Color.black; // [embed] AMDProgressBarEmbed progress1_, progress2_; // [canvas] //AMDProgressBar progress1_, progress2_; Thread kicker_; boolean blank_ = false; int index_ = 0; String text_; public void init() { setBackground(Color.white); setLayout(null); // [embed] progress1_ = new AMDProgressBarEmbed(this); progress2_ = new AMDProgressBarEmbed(this); // [canvas] // progress1_ = new AMDProgressBar(); // add(progress1_); // progress2_ = new AMDProgressBar(); // add(progress2_); progress1_.reshape(13, 30, 150, 21); progress2_.reshape(13, 57, 150, 25); progress2_.setBoxColors(new Color(11, 31, 223), new Color(125, 175, 251)); progress2_.setBarColor(new Color(203, 143, 251)); progress2_.setTextColors(Color.white, Color.black); progress2_.setText("% Complete"); text_ = MESSAGES[index_]; repaint(); } public void start() { kicker_ = new Thread(this); kicker_.start(); } public void stop() { kicker_.stop(); } public void update(Graphics g) { paint(g); } public void paint(Graphics g) { if (blank_) { g.setColor(getBackground()); g.fillRect(0, 0, 200, 29); blank_ = false; } g.setColor(COLOR); g.setFont(FONT); g.drawString(text_, 13, 20); // [embed] // embedded bars need to be repainted progress1_.paint(g); progress2_.paint(g); } int loop1_ = 1; int loop2_ = 0; public void run() { try { while (true) { for (; loop1_ <= 100; ++loop1_) { progress1_.setPercent((double)loop1_ / (double)100); if (loop1_ % MESSAGES.length == 0) { ++loop2_; if (loop2_ > 100) loop2_ = 1; progress2_.setPercent((double)loop2_ / (double)100); } if (loop1_ % 100 == 0) Thread.sleep(1000); else Thread.sleep(100); } loop1_ = 1; index_ = (index_ + 1) % MESSAGES.length; text_ = MESSAGES[index_]; blank_ = true; repaint(); } } catch (Exception e) { ; } } }