网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.仔细研究 J2ME.
.Jakarta Commons实现BeanCompara.
.深入Java中文问题及最优解决方法.
.J2ME学习之温故而知新篇.
.JavaMail邮件主题乱码的解决方法.
.1. Introduction.
.浅论Java访问COM/ActiveX.
.基于Java的Web服务器工作原理(3).
.简介使用Java编写Palm OS程序的解.
.SWT/JFace入门指南之加速开发.
.实例说明Java中的方法重载机制.
.软件测试认识中的误区.
.简单的Java循环控制实现行列式算.
.J2EE中使用EntityBean和JDO的优缺.
.java新手必看-hello world 攻略.
.一个初学者初识 Java 内部类.
.微软代码.
.LN2 属性.
.Think in java Stream 经典.
.jive 2.6.2安装指南.

Java学习笔记 线程实例:一个钟表的实现

发表日期:2008-1-5


最近在学习Java线程,照着书上例子写的钟表图形程序,对线程有一定的理解,但是发觉对图形编程的把握不够很多函数还不能把握~~

以下是钟表例子的代码

 package hello; 
 import java.awt.*;
 import java.applet.*;
 import java.awt.event.*;
 import java.util.*;
 import java.awt.geom.*;


public class T extends Applet implements Runnable{
  Thread tHour = null,tMinute = null,tSecond = null;//表示时针,分针和秒针的线程
  int hour_a,hour_b,minute_a,minute_b,second_a,second_b;//表示时针,分针,秒针端点的整型变量
  int hour = 0,minute = 0,second = 0;//获取当前时间的整型变量
 
  //绘制时针,分针和秒针的Graphics对象
  Graphics g_second = null,g_minute = null,g_hour =null;
  //存放表盘刻度的数组,供指针走动时使用
  double  point_x[] = new double[61],point_y[] = new double[61];
  //存放表盘刻度的数组,供绘制表盘使用
  double scaled_x[] = new double[61],scaled_y[] = new double[61];
  //判定小程序是否重新开始的变量
  int start_count = 0;
 
  public void init(){
   g_hour = this.getGraphics();
   g_hour.setColor(Color.CYAN);
   g_second = this.getGraphics();
   g_second.setColor(Color.RED);
   g_minute = this.getGraphics();
   g_minute.setColor(Color.blue);
   g_second.translate(200,200);//进行坐标系统变换,将新坐标系原点设在(200,200)处
   g_minute.translate(200,200);
   g_hour.translate(200,200);
   point_x[0] = 0; point_y[0] = -120;//各个时针12点处的位置坐标(按新坐标系的坐标)
   scaled_x[0] = 0;scaled_y[0] = -140;//12点处的刻度位置坐标(按新坐标系的坐标)
   double jiaodu = 6*Math.PI/180;
   //表盘分割成60分,将分割点的坐标存放在数组中
   for(int i = 0; i < 60; i++){
    point_x[i+1] = point_x[i]*Math.cos(jiaodu)-Math.sin(jiaodu)*point_y[i];
    point_y[i+1] = point_y[i]*Math.cos(jiaodu) + point_x[i]*Math.sin(jiaodu);   
   }
   
   point_x[60] = 0; point_y[60] = -120;
   
   for(int i = 0; i < 60; i++){
    scaled_x[i+1] = scaled_x[i]*Math.cos(jiaodu)-Math.sin(jiaodu)*scaled_y[i];
    scaled_y[i+1] = scaled_y[i]*Math.cos(jiaodu) + Math.sin(jiaodu)*scaled_x[i];
   }
   scaled_x[60]= 0;
   scaled_y[60] = -140;
  }
  public void start(){
   //每当小程序重新开始时,首先消灭线程,然后重新开始创建线程
   if(start_count >= 1){
    tSecond.interrupt();
    tMinute.interrupt();
    tHour.interrupt();
   }
   tSecond = new Thread(this);
   tMinute = new Thread(this);

上一篇:详解Java中的指针、引用及对象的clone 人气:843
下一篇:Thinking in Java第三版读书笔记-第六章:复用类 人气:588
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐