初学多线程练习1--电子时钟

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

模拟一个电子时钟,它可以在任何时候被启动或者停止,并可以独立的运行。

1.定义一个Clock类。它继承Label类,并实现Runnable接口。这个类中有一个Thread类型的clocker域,以及start()和run()方法。在run()方法中,每隔一秒就把系统时间显示为label的文本。

1classClockextendsLabelimplementsRunnable2{3//定义Thread类型的clocker域4publicThread clocker=null;5publicClock()6{78//初始化时,把label设置为当前系统时间9//调用toString方法转化为String类型10setText(newDate().toString());11}12//控制线程的启动13publicvoidstart()14{15if(clocker==null)16{17//clocker通过Thread类构造方法得到的对象进行初始化,并将Clock类的当前对象作为参数18clocker=newThread(this);19clocker.start();20}2122}23//控制线程的停止24publicvoidstop()25{26clocker=null;27}28//实现Runnable接口中的run()方法29publicvoidrun()30{31Thread currentThread=Thread.currentThread();32//判断clocker是否是当前运行的线程33while(clocker==currentThread)34{35setText(newDate().toString());36try37{//休眠1s钟38clocker.sleep(1000);39}40catch(InterruptedException ie)41{42System.out.PRintln("Thread error:"+ie);43}44}4546}4748}

2.定义一个ClockFrame类。它继承Frame类,并实现ActionListener接口。在这个类中定义start和stop按钮来控制电子时钟的运行。并且这个类有一个Clock类的域,把这个Clock类对象添加到ClockFrame类中显示。

1publicclassClockFrameextendsFrameimplementsActionListener2{3privateButton start=newButton("Start");4privateButton stop=newButton("Stop");5privateClock c=newClock();6publicClockFrame()7{8super("电子时钟");9//设置窗体使用流式布局10setLayout(newFlowLayout());11//添加按钮并且为其注册监听器12add(start);13start.addActionListener(this);14add(stop);15stop.addActionListener(this);16//使用继承WindowAdapter的匿名内部类来实现窗口的关闭17addWindowListener(newWindowAdapter()18{19publicvoidwindowClosing(WindowEvent we)20{System.exit(0);}21});22add(c);23//使构件在窗口中得到合理的安排。24pack();25setVisible(true);262728}29//通过调用Clock对象中的方法,实现对事件的响应。30publicvoidactionPerformed(ActionEvent ae)31{32if(ae.getSource()==start)33{34c.start();35}36else37if(ae.getSource()==stop)38c.stop();3940}41publicstaticvoidmain(String[] args)42{43newClockFrame();44}45}

3、运行:

注:

需要导入的类:

importjava.awt.*;importjava.awt.event.*;importjava.util.Date;

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航