Mega Code Archive

 
Categories / Java / Swing JFC
 

Timer with ProgressBar

import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.SimpleDateFormat; import java.util.Calendar; public class TimerExample extends JPanel implements ActionListener {     private Timer timer = new Timer(100, this);     private JLabel clockLabel;     private Calendar calendar = Calendar.getInstance();     private SimpleDateFormat dateFormat = new SimpleDateFormat("h:mm ss a");     private JProgressBar secondsProgressBar = new JProgressBar(0, 1000);     public TimerExample() {         this.clockLabel = new JLabel("Clock Stopped");         this.clockLabel.setFont(this.clockLabel.getFont().deriveFont(Font.BOLD, 16));         this.clockLabel.setHorizontalTextPosition(JLabel.CENTER);         this.secondsProgressBar.setVisible(false);         this.secondsProgressBar.setForeground(Color.blue);         add(this.clockLabel);         add(secondsProgressBar);         add(new JButton(new ToggleClockAction()));     }     private class ToggleClockAction extends AbstractAction {         private String startClock = "Start Clock";         private String stopClock = "Stop Clock";         private String clockStopped = "Clock Stopped";         public ToggleClockAction() {             super();             putValue(Action.NAME, startClock);         }         public void actionPerformed(ActionEvent e) {             if (TimerExample.this.timer.isRunning()) {                 putValue(Action.NAME, startClock);                 TimerExample.this.timer.stop();                 TimerExample.this.secondsProgressBar.setVisible(false);                 TimerExample.this.clockLabel.setText(clockStopped);             } else {                 putValue(Action.NAME, stopClock);                 // Call Action Performed To Initialize Time Before Timer is Started.                 // Null is ok since we ignore the event.                 TimerExample.this.actionPerformed(null);                 TimerExample.this.secondsProgressBar.setVisible(true);                 TimerExample.this.timer.start();             }         }     }     public void actionPerformed(ActionEvent e) {         this.calendar.setTimeInMillis(System.currentTimeMillis());         this.clockLabel.setText(this.dateFormat.format(this.calendar.getTime()));         int milliseconds = this.calendar.get(Calendar.MILLISECOND);         this.secondsProgressBar.setValue(milliseconds);     }     public void endExample() {         this.timer.stop();     }     public static void main(String[] a){       JFrame f = new JFrame();       f.setDefaultCloseOperation(1);       f.add(new TimerExample());       f.pack();       f.setVisible(true);     }  }