SecondCounterInaccurateMain.java
上传用户:songled
上传日期:2022-07-14
资源大小:94k
文件大小:2k
源码类别:

进程与线程

开发平台:

Java

  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. import javax.swing.border.*;
  5. public class SecondCounterInaccurateMain extends JPanel {
  6. private SecondCounterInaccurate sc;
  7. private JButton startB;
  8. private JButton stopB;
  9. public SecondCounterInaccurateMain() {
  10. sc = new SecondCounterInaccurate();
  11. startB = new JButton("Start");
  12. stopB = new JButton("Stop");
  13. stopB.setEnabled(false);  // begin with this disabled
  14. startB.addActionListener(new ActionListener() {
  15. public void actionPerformed(ActionEvent e) {
  16. // disable to stop more "start" requests
  17. startB.setEnabled(false);
  18. // Create and start a new thread to run the counter
  19. Thread counterThread = new Thread(sc, "SecondCounter");
  20. counterThread.start();
  21. stopB.setEnabled(true);
  22. stopB.requestFocus();
  23. }
  24. });
  25. stopB.addActionListener(new ActionListener() {
  26. public void actionPerformed(ActionEvent e) {
  27. stopB.setEnabled(false);
  28. sc.stopClock();
  29. startB.setEnabled(true);
  30. startB.requestFocus();
  31. }
  32. });
  33. JPanel innerButtonP = new JPanel();
  34. innerButtonP.setLayout(new GridLayout(0, 1, 0, 3));
  35. innerButtonP.add(startB);
  36. innerButtonP.add(stopB);
  37. JPanel buttonP = new JPanel();
  38. buttonP.setLayout(new BorderLayout());
  39. buttonP.add(innerButtonP, BorderLayout.NORTH);
  40. this.setLayout(new BorderLayout(10, 10));
  41. this.setBorder(new EmptyBorder(20, 20, 20, 20));
  42. this.add(buttonP, BorderLayout.WEST);
  43. this.add(sc, BorderLayout.CENTER);
  44. }
  45. public static void main(String[] args) {
  46. SecondCounterInaccurateMain scm = new SecondCounterInaccurateMain();
  47. JFrame f = new JFrame("Second Counter Inaccurate");
  48. f.setContentPane(scm);
  49. f.setSize(320, 200);
  50. f.setVisible(true);
  51. f.addWindowListener(new WindowAdapter() {
  52. public void windowClosing(WindowEvent e) {
  53. System.exit(0);
  54. }
  55. });
  56. }
  57. }