import java.awt.*; import java.applet.*; public class TranslucentMetersApplet extends Applet { protected TranslucentBarMeter[] barmeters; protected TransparentMeter meter; DataReader[] dataReaders = new DataReader[3]; protected int width = 423; protected int height = 640; public void init(){ setLayout(null); createBarMeters(); createMeter(); createLabels(); createBackgroundImage(); createDataReader(); } public void createBarMeters(){ barmeters = new TranslucentBarMeter[2]; for(int i = 0 ; i < 2 ; i++){ barmeters[i] = new TranslucentBarMeter(); add(barmeters[i]); barmeters[i].setMinimum(0); barmeters[i].setMaximum(100); barmeters[i].setForeground(Color.red); barmeters[i].setBackground(Color.lightGray); } barmeters[0].setBounds(180, 50, 50, 100); barmeters[1].setBounds(350, 500, 50, 100); } public void createMeter(){ meter = new TransparentMeter(); meter.setMinimum(0); meter.setMaximum(100); meter.setForeground(Color.blue); meter.setGraduationColor(Color.lightGray); add(meter); meter.setBounds(200, 150, 200, 200); } public void createLabels(){ TransparentLabel label = new TransparentLabel("Peenerˆ³—Ν", Color.white); add(label); label.setLocation(170, 30); label = new TransparentLabel("100", Color.white); add(label); label.setLocation(155, 40); label = new TransparentLabel("0", Color.black); add(label); label.setLocation(167, 140); label = new TransparentLabel("—n—Z˜F“ΰ‰·“x", Color.white); add(label); label.setLocation(260, 300); label = new TransparentLabel("ŠŠ–ϋ‰·“x", Color.white); add(label); label.setLocation(350, 480); label = new TransparentLabel("100", Color.white); add(label); label.setLocation(325, 490); label = new TransparentLabel("0", Color.white); add(label); label.setLocation(337, 590); } public void createBackgroundImage(){ int size = Integer.parseInt(getParameter("size")); String filename; ImageComponent comp; for(int i = 0 ; i < size ; i++){ filename = getParameter(new String("file"+i)); comp = new ImageComponent(this, filename); add(comp); comp.setLocation(0, 9); } } public void createDataReader(){ DataReader[] dataReaders = new DataReader[3]; for(int i = 0 ; i < 2 ; i++){ dataReaders[i] = new DataReader(); DataChangeAdapter listener = new DataChangeAdapter(barmeters[i]); dataReaders[i].addDataChangeListener(listener); } dataReaders[2] = new DataReader(); dataReaders[2].addDataChangeListener(new DataChangeListener(){ public void dataChanged(DataChangeEvent e) { int val = e.getValue(); meter.setValue(val); } }); } public void start(){ for(int i = 0 ; i < 3 ; i++){ dataReaders[i].setActive(true); } } public void stop(){ for(int i = 0 ; i < 3 ; i++){ dataReaders[i].stop(); } } public void update(Graphics g){ paint(g); } class DataChangeAdapter implements DataChangeListener { TranslucentBarMeter barmeter; public DataChangeAdapter(TranslucentBarMeter barmeter){ this.barmeter = barmeter; } public void dataChanged(DataChangeEvent e) { int val = e.getValue(); barmeter.setValue(val); } } }