资源预览内容
第1页 / 共6页
第2页 / 共6页
第3页 / 共6页
第4页 / 共6页
第5页 / 共6页
第6页 / 共6页
亲,该文档总共6页全部预览完了,如果喜欢就下载吧!
资源描述
精选优质文档-倾情为你奉上实 验 报 告( 2016 / 2017 学年 第 2 学期)课程名称JAVA程序设计实验名称 线程程序设计实验时间 年 月 日指导单位指导教师 学生姓名 班级学号 学院(系)专 业专心-专注-专业实 验 报 告实验名称线程程序设计指导教师实验类型上机实验学时2 实验时间一、 实验目的和要求本实验旨在通过实验,培养学生将JAVA 线程的相关知识点(包括线程调度,线程同步等)有机结合并加以综合应用,在实验中设计多线程程序的能力。二、实验环境(实验设备)PC微型计算机系统,Microsoft Windows操作系统,SUN Java Development Kit开发工具包,Eclipse开发工具。三、实验原理及内容设计和编写一个编写一个指针式时钟程序,应用线程实现时钟的走动。实 验 报 告实验内容:/* * */* * author Dcison * */package h4;import java.awt.*;import javax.swing.*;import java.util.*;public class JavaClock extends JFrame public JavaClock() ClockPaint cp = new ClockPaint(50, 50, 100); this.add(cp); this.setSize(300, 300); this.setLocation(30, 120); this.setTitle(指针时钟); this.setVisible(true); this.setResizable(false); public static void main(String s) new JavaClock(); class ClockPaint extends JPanel implements Runnable int x, y, r; int hour, minute, second; final double rad = Math.PI / 180; public ClockPaint(int x, int y, int r) this.x = x; this.y = y; this.r = r; Calendar now = new GregorianCalendar(); second = now.get(Calendar.SECOND) * 6; minute = now.get(Calendar.MINUTE) * 6; hour = (now.get(Calendar.HOUR_OF_DAY) - 12) * 30 + now.get(Calendar.MINUTE) / 12 * 6; Thread t = new Thread(this); t.start(); public void paint(Graphics g) super.paint(g); g.setColor(Color.WHITE); g.fillRect(0, 0, r * 3, r * 3); g.setColor(Color.BLACK); g.drawOval(x, y, r * 2, r * 2); g.setColor(Color.GREEN); int x1 = (int)(r - 10) * Math.sin(rad * second); int y1 = (int)(r - 10) * Math.cos(rad * second); g.drawLine(x + r, y + r, x + r + x1, y + r - y1); g.setColor(Color.BLUE); x1 = (int)(r - r / 2.5) * Math.sin(rad * minute); y1 = (int)(r - r / 2.5) * Math.cos(rad * minute); g.drawLine(x + r, y + r, x + r + x1, y + r - y1); g.setColor(Color.RED); x1 = (int)(r - r / 1.5) * Math.sin(rad * hour); y1 = (int)(r - r / 1.5) * Math.cos(rad * hour); g.drawLine(x + r, y + r, x + r + x1, y + r - y1); g.setColor(Color.BLACK); int d = 28; for (int i = 1; i = 12; i+) x1 = (int)(r - 10) * Math.sin(rad * d); y1 = (int)(r - 10) * Math.cos(rad * d); g.drawString(i + , x + r + x1 - 4, x + r - y1 + 5); d += 30; d = 0; for (int i = 0; i 60; i+) int len = 0; if(d % 30 = 0) len = 5; else len = 2; for (int j = 1; j = 360) minute = 0; hour += 6; if (hour = 360) hour = 0; this.repaint(); 实 验 报 告四、实验小结(包括问题和解决方法、心得体会、意见与建议等)五、指导教师评语成 绩批阅人日 期
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号