国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 襄汾县| 东明县| 肃北| 石棉县| 赞皇县| 隆尧县| 兴文县| 莱州市| 萍乡市| 丰宁| 平凉市| 通山县| 中江县| 新乐市| 南安市| 衡南县| 清镇市| 远安县| 嵊州市| 宁安市| 五河县| 灵石县| 洛浦县| 城步| 保康县| 饶平县| 无极县| 濉溪县| 新干县| 喀什市| 且末县| 介休市| 安西县| 昭平县| 苍山县| 丹东市| 霍城县| 阜阳市| 满洲里市| 政和县| 黄龙县|