Guest User

Untitled

a guest
Sep 21st, 2013
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.61 KB | None | 0 0
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4.  
  5. public class Countdown implements ActionListener
  6. {
  7. private JFrame f;
  8. private JPanel p1, p2;
  9.  
  10. private JLabel hrs, mins, sec,debug; //
  11. private JTextField tHrs, tMins, tSec;
  12. private JButton bStart, bStop, bBack;
  13.  
  14. public Countdown()
  15. {
  16. f = new JFrame("Countdown");
  17.  
  18. p1 = new JPanel();
  19. p2 = new JPanel();
  20.  
  21. hrs = new JLabel("hrs: ");
  22. mins = new JLabel("mins: ");
  23. sec = new JLabel("sec: ");
  24.  
  25. tHrs = new JTextField("0",2);
  26. tMins = new JTextField("0",2);
  27. tSec = new JTextField("0",2);
  28.  
  29. bStart = new JButton("START");
  30. bStop = new JButton("STOP");
  31. bBack = new JButton("BACK");
  32.  
  33. debug = new JLabel("-"); //
  34. }
  35.  
  36. public void launchFrame()
  37. {
  38. p1.setLayout(new FlowLayout());
  39.  
  40. p1.add(hrs);
  41. p1.add(tHrs);
  42. p1.add(mins);
  43. p1.add(tMins);
  44. p1.add(sec);
  45. p1.add(tSec);
  46.  
  47. p2.setLayout(new FlowLayout());
  48.  
  49. p2.add(bStart);
  50. p2.add(bStop);
  51. p2.add(bBack);
  52.  
  53. f.setLayout(new GridLayout(3,1)); //
  54. f.add(p1);
  55. f.add(p2);
  56. f.add(debug);//
  57.  
  58. f.pack();
  59. f.setVisible(true);
  60.  
  61. bStart.addActionListener(this);
  62. bStop.addActionListener(this);
  63. bBack.addActionListener(this);
  64.  
  65. f.addWindowListener(new MyCloseEventHandler());
  66. }
  67. Count cnt = new Count();
  68. public void actionPerformed(ActionEvent ae)
  69. {
  70. //Count cnt = new Count();
  71. Thread t1 = new Thread(cnt);
  72. Object source = ae.getSource();
  73. if (source == bStart)
  74. {
  75. t1.start();
  76. }
  77. else if (source == bStop)
  78. {
  79. cnt.stopRunning();
  80. }
  81. else if (source == bBack)
  82. {
  83. f.setVisible(false);
  84. }
  85. }
  86.  
  87. class Count implements Runnable
  88. {
  89. private volatile boolean timeToQuit=false;
  90.  
  91. public void run()
  92. {
  93. while(!timeToQuit)
  94. {
  95. int h = Integer.parseInt(tHrs.getText());
  96. int m = Integer.parseInt(tMins.getText());
  97. int s = Integer.parseInt(tSec.getText());
  98. if(h!=0 || m!=0 || s!=0)
  99. {
  100. while( s>=0 && !timeToQuit)
  101. {
  102. try
  103. {
  104. Thread.sleep(1000);
  105. }
  106. catch(InterruptedException ie){}
  107.  
  108. if(s == 0)
  109. {
  110. m--;
  111. s=60;
  112. if(m == -1)
  113. {
  114. h--;
  115. m=59;
  116. tHrs.setText(Integer.toString(h));
  117. }
  118. tMins.setText(Integer.toString(m));
  119. }
  120. s--;
  121. tSec.setText(Integer.toString(s));
  122. }
  123. }
  124. else
  125. {
  126. timeToQuit = true;
  127. //debug.setText("Stopped");
  128. }
  129. }
  130.  
  131. tHrs.setText("0");
  132. tMins.setText("0");
  133. tSec.setText("0");
  134. }
  135.  
  136. public void stopRunning()
  137. {
  138. timeToQuit = true;
  139.  
  140. debug.setText("Stopped");
  141. }
  142. }
  143.  
  144.  
  145. private class MyCloseEventHandler extends WindowAdapter
  146. {
  147. public void windowClosing(WindowEvent we)
  148. {
  149. System.exit(0);
  150. }
  151. }
  152.  
  153. public static void main(String args[])
  154. {
  155. Countdown c = new Countdown();
  156. c.launchFrame();
  157. }
  158. }
Advertisement
Add Comment
Please, Sign In to add comment