Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.*;
- import java.awt.event.*;
- import javax.swing.*;
- public class Countdown implements ActionListener
- {
- private JFrame f;
- private JPanel p1, p2;
- private JLabel hrs, mins, sec,debug; //
- private JTextField tHrs, tMins, tSec;
- private JButton bStart, bStop, bBack;
- public Countdown()
- {
- f = new JFrame("Countdown");
- p1 = new JPanel();
- p2 = new JPanel();
- hrs = new JLabel("hrs: ");
- mins = new JLabel("mins: ");
- sec = new JLabel("sec: ");
- tHrs = new JTextField("0",2);
- tMins = new JTextField("0",2);
- tSec = new JTextField("0",2);
- bStart = new JButton("START");
- bStop = new JButton("STOP");
- bBack = new JButton("BACK");
- debug = new JLabel("-"); //
- }
- public void launchFrame()
- {
- p1.setLayout(new FlowLayout());
- p1.add(hrs);
- p1.add(tHrs);
- p1.add(mins);
- p1.add(tMins);
- p1.add(sec);
- p1.add(tSec);
- p2.setLayout(new FlowLayout());
- p2.add(bStart);
- p2.add(bStop);
- p2.add(bBack);
- f.setLayout(new GridLayout(3,1)); //
- f.add(p1);
- f.add(p2);
- f.add(debug);//
- f.pack();
- f.setVisible(true);
- bStart.addActionListener(this);
- bStop.addActionListener(this);
- bBack.addActionListener(this);
- f.addWindowListener(new MyCloseEventHandler());
- }
- Count cnt = new Count();
- public void actionPerformed(ActionEvent ae)
- {
- //Count cnt = new Count();
- Thread t1 = new Thread(cnt);
- Object source = ae.getSource();
- if (source == bStart)
- {
- t1.start();
- }
- else if (source == bStop)
- {
- cnt.stopRunning();
- }
- else if (source == bBack)
- {
- f.setVisible(false);
- }
- }
- class Count implements Runnable
- {
- private volatile boolean timeToQuit=false;
- public void run()
- {
- while(!timeToQuit)
- {
- int h = Integer.parseInt(tHrs.getText());
- int m = Integer.parseInt(tMins.getText());
- int s = Integer.parseInt(tSec.getText());
- if(h!=0 || m!=0 || s!=0)
- {
- while( s>=0 && !timeToQuit)
- {
- try
- {
- Thread.sleep(1000);
- }
- catch(InterruptedException ie){}
- if(s == 0)
- {
- m--;
- s=60;
- if(m == -1)
- {
- h--;
- m=59;
- tHrs.setText(Integer.toString(h));
- }
- tMins.setText(Integer.toString(m));
- }
- s--;
- tSec.setText(Integer.toString(s));
- }
- }
- else
- {
- timeToQuit = true;
- //debug.setText("Stopped");
- }
- }
- tHrs.setText("0");
- tMins.setText("0");
- tSec.setText("0");
- }
- public void stopRunning()
- {
- timeToQuit = true;
- debug.setText("Stopped");
- }
- }
- private class MyCloseEventHandler extends WindowAdapter
- {
- public void windowClosing(WindowEvent we)
- {
- System.exit(0);
- }
- }
- public static void main(String args[])
- {
- Countdown c = new Countdown();
- c.launchFrame();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment