国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

Java學習筆記 線程實例:一個鐘表的實現(xiàn)

2019-11-18 10:41:07
字體:
供稿:網(wǎng)友

最近在學習java線程,照著書上例子寫的鐘表圖形程序,對線程有一定的理解,但是發(fā)覺對圖形編程的把握不夠很多函數(shù)還不能把握~~

以下是鐘表例子的代碼

 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;
  //存放表盤刻度的數(shù)組,供指針走動時使用
  double  point_x[] = new double[61],point_y[] = new double[61];
  //存放表盤刻度的數(shù)組,供繪制表盤使用
  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);//進行坐標系統(tǒng)變換,將新坐標系原點設在(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分,將分割點的坐標存放在數(shù)組中
   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(){
   //每當小程序重新開始時,首先消滅線程,然后重新開始創(chuàng)建線程
   if(start_count >= 1){
    tSecond.interrupt();
    tMinute.interrupt();
    tHour.interrupt();
   }
   tSecond = new Thread(this);
   tMinute = new Thread(this);

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 绥化市| 萨迦县| 胶州市| 伊通| 绍兴县| 临夏市| 闽清县| 互助| 北宁市| 平舆县| 濉溪县| 双江| 基隆市| 汝南县| 铜陵市| 图们市| 逊克县| 嘉禾县| 隆昌县| 莱西市| 平安县| 长乐市| 揭阳市| 连云港市| 屯昌县| 苗栗县| 延寿县| 南宫市| 吐鲁番市| 马龙县| 铁岭县| 赣榆县| 安化县| 安新县| 甘肃省| 云霄县| 北票市| 兰西县| 霍林郭勒市| 洪湖市| 遂溪县|