java多线程制作计时器

基本思路:

在类中创建thread 供按钮监听器调用。

 

 

界面设计:

技术分享

 

代码:

技术分享
 1 package thread;
 2 
 3 import java.awt.*;
 4 import java.awt.event.*;
 5 
 6 import javax.swing.*;
 7 
 8 public class Threadtest extends JFrame implements Runnable{
 9     JFrame frm=new JFrame("watch");
10     JPanel bottom=new JPanel();
11     JPanel mid=new JPanel();
12     JLabel h=new JLabel("0");
13     JLabel biao=new JLabel(":");
14     JLabel s=new JLabel("00");
15     JButton hajime=new JButton("开始计时");
16     JButton pause=new JButton("暂停");
17     JButton tozero=new JButton("清零");
18     Thread t=new Thread(this);    
19     private int i=0,j=0;
20     public void run(){
21         try
22         {
23             while(true){
24             Thread.sleep(100);
25             i++;
26             if(i>=1&&i<10)
27             {
28                 s.setText("0"+i);
29             }
30             else if(i>=10&&i<60)
31                 s.setText(""+i);
32             if(i==60)
33             {
34                 i=0;
35                 j++;
36                 s.setText("00");
37                 h.setText(""+j);
38             }
39             }
40         }catch(Exception e){
41             System.out.println("");
42         }
43     }
44     public Threadtest()
45     {
46         frm.setLayout(new BorderLayout());
47         frm.setBounds(200, 200, 300, 150);
48         frm.setVisible(true);
49         frm.add("South",bottom);
50         frm.add("Center",mid);
51         
52         mid.add(h);
53         mid.add(biao);
54         mid.add(s);
55         h.setFont(new Font("Consulas",Font.PLAIN,36));
56         biao.setFont(new Font("Consulas",Font.PLAIN,36));
57         s.setFont(new Font("Consulas",Font.PLAIN,36));
58         bottom.add(hajime);
59         bottom.add(pause);
60         bottom.add(tozero);
61         
62         
63         hajime.addActionListener(new ActionListener(){
64             public void actionPerformed(ActionEvent e){
65                 if(t.isAlive())
66                     t.resume();
67                 else t.start();
68             }});
69         pause.addActionListener(new ActionListener(){
70             public void actionPerformed(ActionEvent e){
71                     t.suspend();
72             }});
73         tozero.addActionListener(new ActionListener(){
74             public void actionPerformed(ActionEvent e){
75                 h.setText("0");
76                 s.setText("00");
77                 i=0;
78                 j=0;
79             }
80         });
81     }
82     
83     public static void main(String[] args){
84         new Threadtest();
85     }
86 }
View Code

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。