import java.awt.*; import java.applet.*; import java.awt.event.*; public class ClipBarMeterApplet extends Applet implements Runnable { ClipBarMeter meter; DataReader dataReader = new DataReader(); public void init(){ setLayout(new BorderLayout()); meter = new ClipBarMeter(); add(meter, BorderLayout.CENTER); meter.setMinimum(0); meter.setMaximum(100); meter.setForeground(Color.red); meter.setBackground(Color.black); Panel panel = new Panel(); Button button0 = new Button("Oval"); button0.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ meter.setClipShape(ClipBarMeter.OVAL); } }); Button button1 = new Button("RoundRectangle"); button1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ meter.setClipShape(ClipBarMeter.ROUND_RECTANGLE); } }); Button button2 = new Button("Text"); button2.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ meter.setClipShape(ClipBarMeter.TEXT); } }); Button button3 = new Button("CompShape"); button3.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ meter.setClipShape(ClipBarMeter.COMP_SHAPE); } }); Button button4 = new Button("GenPath"); button4.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ meter.setClipShape(ClipBarMeter.GENERAL_PATH); } }); panel.add(button0); panel.add(button1); panel.add(button2); panel.add(button3); panel.add(button4); this.add(panel, BorderLayout.NORTH); dataReader = new DataReader(); dataReader.addDataChangeListener(new DataChangeListener(){ public void dataChanged(DataChangeEvent e) { int val = e.getValue(); meter.setValue(val); } }); } public void start(){ dataReader.setActive(true); } public void stop(){ dataReader.stop(); } public void run(){ while(true){ for(int i = 10 ; i < 50 ; i++){ meter.setValue((double)i); try{ Thread.sleep(100); }catch(InterruptedException ex){ return; } } } } public void update(Graphics g){ paint(g); } }