任务二十七 JAVA的分身术(创建和启动线程).doc
上传人:sy****28 上传时间:2024-09-12 格式:DOC 页数:2 大小:55KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

任务二十七 JAVA的分身术(创建和启动线程).doc

任务二十七JAVA的分身术(创建和启动线程).doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

··Java程序设计任务驱动式教程任务一搭建环境··任务二十七JAVA的分身术(创建和启动线程)27.5动手做一做一、实训目的⑴掌握创建线程的方法;⑵掌握启动线程方法。二、实训内容1.运用Java多线程技术,通过实现Runnable接口来编写一个电子时钟的应用程序RunnableClock,运行程序时会显示系统的当前日期和时间,并且每隔1秒后会自动刷新显示当前日期和时间。程序运行的结果如图27-5。图27-5用Runnable接口来实现的电子时钟三、简要提示1.分析首先实现Runnable接口来创建一个类RunnableClock,并重写RunnableClock类中的run方法来实现每隔一秒钟刷新显示系统的的当前日期和当前时间,然后在main()方法中将RunnableClock类实例化为对象r,以对象r为目标对象创建线程对象t。通过调用t.start()来启动线程。2.代码packagecom.task27;importjava.awt.BorderLayout;importjava.awt.Canvas;importjava.awt.Color;importjava.awt.Font;importjava.awt.Graphics;importjava.sql.Date;importjava.text.SimpleDateFormat;importjava.util.Calendar;importjavax.swing.JFrame;importjavax.swing.JPanel;classRunnableClockextendsCanvasimplementsRunnable{privatestaticfinallongserialVersionUID=3660124045489727166L;JFrameframe=newJFrame();JPanelconPane;Stringtime;inti=0;Datetimer;publicRunnableClock(){conPane=(JPanel)frame.getContentPane();conPane.setLayout(newBorderLayout());conPane.setSize(280,40);conPane.setBackground(Color.white);conPane.add(this,BorderLayout.CENTER);frame.setVisible(true);frame.setSize(300,150);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}publicvoidrun(){while(true){try{Thread.sleep(1000);//休眠1秒钟}catch(InterruptedExceptione){System.out.println("异常");}this.repaint(100);}}publicvoidpaint(Graphicsg){Fontf=newFont("宋体",Font.BOLD,16);SimpleDateFormatSDF=newSimpleDateFormat("yyyy'年'MM'月'dd'日'HH:mm:ss");//格式化时间显示类型Calendarnow=Calendar.getInstance();time=SDF.format(now.getTime());//得到当前日期和时间g.setFont(f);g.setColor(Color.orange);g.drawString(time,45,25);}publicstaticvoidmain(Stringargs[]){RunnableClockr=newRunnableClock();//创建具有线程体的目标对象Threadt=newThread(r);t.start();//启动线程}}四、实训思考1.使用Runnable接口与Thread类创建线程有何区别?2.Runnable接口包含start()方法吗?