//********************************************************************* //* Programmer : Jang Kyu-O(Àå ±Ô¿À) * //* Date : 1996/2/10 * //* E-Mail : kojang@ctkhost.ctk.co.kr * //* Tel : +82-02-3149-4821 * //* Address : Á¦À̾¾Çö ¿¤¸²³×Æ®»ç¾÷º»ºÎ À¥ÆÀ * //********************************************************************* import java.applet.*; import java.awt.*; import java.lang.*; import java.io.*; class BarThread extends Thread { int size; public BarThread() { size = 10; } public int getSize(){ return size; } public void run() { for (int i = 0; i < 20; i++) { size+=10; try { sleep((int)(Math.random() * 1000)); } catch (InterruptedException e) {} } } } public class BarThreadTest extends Applet implements Runnable { Thread updateThread; BarThread One=null, Two=null; public void init() { } public boolean mouseDown(Event evt, int x, int y) { if(updateThread != null) updateThread = null; if(One != null) One = null; if(Two != null) Two = null; updateThread = new Thread(this); One = new BarThread(); Two = new BarThread(); updateThread.start(); One.start(); Two.start(); return true; } public void stop() { if (updateThread.isAlive()) { updateThread.stop(); updateThread = null; } if (One.isAlive()) { One.stop(); One = null; } if (Two.isAlive()) { Two.stop(); Two = null; } } public void run() { while (updateThread != null) { repaint(); try { updateThread.sleep(10); } catch (InterruptedException e) { } } } public void paint(Graphics g) { update(g); } public void update(Graphics g) { g.setColor(Color.lightGray); g.fillRect(0, 0, size().width, size().height); if(One!=null && Two!=null) { g.setColor(Color.blue); g.fill3DRect(10, 50, One.getSize(), 20, true); g.setColor(Color.red); g.fill3DRect(10, 100, Two.getSize(), 20, true); g.setFont(new Font("Helvista", 1, 20)); g.setColor(new Color(0, 0, 170)); g.drawString("Larger bar size...", 10, 150); } else { g.setFont(new Font("Helvista", 1, 20)); g.setColor(new Color(0, 0, 170)); g.drawString("Press mouse button...", 10, 150); } } }