import java.awt.*; import java.applet.Applet; import java.util.Random; public class StereoPanel extends Applet implements Runnable { Thread workThread; StereoLights l1; StereoLights l2; StereoLights l3; StereoLights l4; StereoLights l5; StereoLights v; private Random r; private int level; private int volume; private int startPoint; Graphics g; public void stop() { if (workThread != null) workThread.stop(); } public StereoPanel() { volume = 10; startPoint = 5; } public void redraw() { level = rand(volume + 10); l1.draw(g, level); level = rand(volume + 10); l2.draw(g, level); level = rand(volume + 10); l3.draw(g, level); level = rand(volume + 10); l4.draw(g, level); level = rand(volume + 10); l5.draw(g, level); v.draw(g, volume); } public void paint(Graphics g) { l1.refresh(g); l2.refresh(g); l3.refresh(g); l4.refresh(g); l5.refresh(g); v.refresh(g); g.setColor(new Color(200, 255, 200)); g.drawString("Vol", 151, 125); g.drawRect(5, 5, 175, 125); } int rand(int i) { return Math.abs(r.nextInt() % i); } public void start() { workThread = new Thread(this); workThread.start(); } public boolean mouseDown(Event event, int i, int j) { startPoint = j; return true; } public void run() { while (workThread != null) { redraw(); try { Thread.sleep(100); } catch (InterruptedException e) { } } } public void init() { r = new Random(); l1 = new StereoLights(); l1.setPosition(15, 10); l1.setSize(20, 100, 20); l2 = new StereoLights(); l2.setPosition(36, 10); l2.setSize(20, 100, 20); l3 = new StereoLights(); l3.setPosition(57, 10); l3.setSize(20, 100, 20); l4 = new StereoLights(); l4.setPosition(78, 10); l4.setSize(20, 100, 20); l5 = new StereoLights(); l5.setPosition(99, 10); l5.setSize(20, 100, 20); v = new StereoLights(); v.setPosition(150, 10); v.setSize(20, 100, 20); v.setColors(Color.white, Color.cyan, Color.blue); setBackground(Color.black); if (g == null) g = getGraphics(); } public boolean mouseDrag(Event event, int i, int j) { if (j > startPoint) volume = Math.abs(volume += -1); else volume++; if (volume > 30) volume += -1; return true; } }