您所在位置: 网站首页 / JAVA线程程序设计实验报告.doc / 文档详情
JAVA线程程序设计实验报告.doc 立即下载
2024-12-16
约3.3千字
约5页
0
89KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

JAVA线程程序设计实验报告.doc

JAVA线程程序设计实验报告.doc

预览

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

10 金币

下载文档

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

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

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

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

线程程序设计
课题内容和要求
内容:设计和编写一个编写一个指针式时钟程序,应用线程实现时钟的走动。
要求:本实验旨在通过实验,培养学生将JAVA线程的相关知识点(包括线程调度,线程同步等)有机结合并加以综合应用,在实验中设计多线程程序的能力。
二、设计思路分析
classClock:一个指针式时钟的主类
classLayout:添加窗口和时钟组件
classClockPaint:定义时钟组件
三、概要设计
publicclassClockextendsJFrame{
		publicstaticvoidmain(String[]s);
}
classLayoutextendsJFrame{
		publicLayout();
	}
classClockPaintextendsJPanelimplementsRunnable{
		intx,y,r;
		inth,m,s;
		doublerad=Math.PI/180;
	publicClockPaint(intx,inty,intr);
	publicvoidpaint(Graphicsg);
publicvoidrun();
}
时钟的绘制:

运行时钟:
	
四、详细设计
importjava.awt.*;
importjavax.swing.*;
importjava.util.*;

publicclassClockextendsJFrame{
	publicstaticvoidmain(String[]s){
		newLayout();
	}
}

classLayoutextendsJFrame{//添加窗口和时钟组件
	publicLayout(){
		ClockPaintcp=newClockPaint(20,20,70);
		add(cp);
		setBounds(260,120,200,200);
		setResizable(false);
		this.setTitle("指针式时钟");
		this.setVisible(true);
	}
}

classClockPaintextendsJPanelimplementsRunnable{//定义时钟组件
	intx,y,r;//时钟的位置坐标和半径
	inth,m,s;//小时,分钟,秒
	doublerad=Math.PI/180;//定义弧度

	publicClockPaint(intx,inty,intr){//构造函数
		this.x=x;
		this.y=y;
		this.r=r;
		Calendarnow=Calendar.getInstance();//初始化日历对象
		s=now.get(Calendar.SECOND)*6;//获得初始秒转换成度数
		m=now.get(Calendar.MINUTE)*6;//获得初始分钟转换成度数
		h=(now.get(Calendar.HOUR_OF_DAY)-12)*30
				+now.get(Calendar.MINUTE)*6/12;//获得初始小时转换成度数加分钟实现连贯

		Threadt=newThread(this);//新建线程
		t.start();//启动线程
	}

	publicvoidpaint(Graphicsg){//绘制时钟
		g.setColor(Color.BLACK);//画背景
		g.fillRect(0,0,r*3,r*3);

		g.setColor(Color.WHITE);//画圆
		g.drawOval(x,y,r*2,r*2);

		intd=0;//每6度画一个小点
		intx1,y1,x2,y2;
		for(inti=0;i<60;i++){
			x1=(int)((r-2)*Math.sin(rad*d));
			y1=(int)((r-2)*Math.cos(rad*d));
			g.drawString(".",x+r+x1-1,x+r-y1+1);
			d+=6;
		}

		d=30;//从30度开始每30度画一个数字和一线
		for(inti=1;i<=12;i++){
			x1=(int)((r-14)*Math.sin(rad*d));
			y1=(int)((r-14)*Math.cos(rad*d));
			g.drawString(i+"",x+r+x1-4,x+r-y1+5);
			x1=(int)((r-6)*Math.sin(rad*d));
			y1=(int)((r-6)*Math.cos(rad*d));
			x2=(int)((r-2)*Math.sin(rad*d));
	
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

JAVA线程程序设计实验报告

文档大小:89KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用