这是学校 java的一道期末考试题,钟表的指针借鉴的大佬的代码。。。。

代码流程

publicpublic class ClockApplet extends Applet implements Runnable{

全局变量的设置

初始化函数{

............

}

画图函数{

............

}

线程开始函数{

............

}

}

话不多说,直接上代码

import java.applet.Applet;

import java.awt.Color;

import java.awt.Graphics;

import java.util.Calendar;

import java.util.GregorianCalendar;

public class ClockApplet extends Applet implements Runnable{

int x,y,r;

int h,m,s;//时,分,秒

double rad = Math.PI/180;//  1°

//初始化函数

public void init() {

x = 0;

y = 0;

r = 100;

Calendar now = new GregorianCalendar();

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)/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, 300, 300);//填充背景

g.setColor(Color.BLACK);

g.drawOval(x, y, r*2, r*2);//画表盘

/*drawLine(a,b,c,d)

* a b 起点坐标

* c d 终点坐标

*/

//秒针

int x1 = (int)(90*Math.sin(rad*s));

int y1 = (int)(90*Math.cos(rad*s));

g.drawLine(x+r, y+r, (x+r)+x1, (y+r)-y1);

//分针

x1 = (int)(80*Math.sin(rad*m));

y1 = (int)(80*Math.cos(rad*m));

g.drawLine(x+r, y+r, (x+r)+x1, (y+r)-y1);

//时针

x1 = (int)(60*Math.sin(rad*h));

y1 = (int)(60*Math.cos(rad*h));

g.drawLine(x+r, y+r, (x+r)+x1, (y+r)-y1);

//画数字

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=1;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;

}

//显示时间

Calendar now1 = new GregorianCalendar();

int a,b,c;

a = now1.get(Calendar.HOUR_OF_DAY);

b = now1.get(Calendar.MINUTE);

c = now1.get(Calendar.SECOND);

g.drawString(a + ":" + b + ":" + c, 0, 10);

}

//实现Runnable

public void run(){

while(true){

try{

Thread.sleep(1000);//间隔一秒

}catch(Exception ex){}

//秒针每次走6°

s += 6;

//秒针归零

if(s>=360){

s = 0;

m += 6;

//分针走72°,时针走6°

if(m==72 || m==144 || m==288){

h += 6;

}

//分针归零

if(m>=360){

m = 0;

h += 6;

}

//时针归零

if(h>=360){

h = 0;

}

}

//重新绘制

this.repaint();

}

}

}

结果如下图,遗憾的是左上角的时间显示比系统时间晚了几毫秒。

标签:

编写时钟aplet程序java,编写时钟 Applet 程序相关推荐

  1. 「小程序JAVA实战」 小程序远程调试(九)

    在开发javaweb应用的时候,如果遇见一个问题都会调试,debug,在火狐和谷歌浏览器的时候我们也可以使用断点的方式调试js,小程序可以吗?肯定是可以的!小程序的调试也可以在手机端进行远程调试.源码 ...

  2. 腾讯小程序 java编写_微信小程序 使用腾讯地图SDK详解及实现步骤

    微信小程序 使用腾讯地图SDK详解及实现步骤 近期在做一款彩票服务类项目中用到了腾讯地图提供的小程序解决方案,拿来给大家分享一下! 使用起来非常简单,就是一些功能还有待完善. 官方文档:http:// ...

  3. java编写存钱_用Java编写一个简单的存款

    package desposit.money; public class DespositMoney { public static void main(String[] args) { Custom ...

  4. java编写管理系统_用java编写学生信息管理系统

    <用java编写学生信息管理系统>由会员分享,可在线阅读,更多相关<用java编写学生信息管理系统(7页珍藏版)>请在人人文库网上搜索. 1.用java编写学生信息管理系统im ...

  5. java jdbc程序,Java构建JDBC应用程序的操作

    我们在学习接口的时候.能够在里面做一些方法的调用.不过今天所要讲的JDBC,虽然也是连接数据库的一种接口,不过与类接口有着很大的区别,大家要注意区分.下面我们就构建JDBC的步骤进行了整理,还不会此类 ...

  6. java实现表达式求值_如何编写一个高效的Java表达式求值程序

    虽然,这个题目是有一点夺人眼球,但我真实这么做了(关是以否信任基准测试效果,这是其他一个话题). 所以,上周我一贯在找一个小型.适用的竞赛争辩数学表达式的类库.有功夫我在stackoverflow上看 ...

  7. java简易日历程序报告_简单的日历小程序(java编写)

    import java.util.Scanner; public class CalendarDemo{ public static void main(String[] args) { int su ...

  8. java测试类生成对象,java编写student类 用Java编写一段测试程序,生成student类的两个对象,并输出每个对象基本信息?...

    java中怎么创建对象数组?比如我创建了一个学生类Student,怎么用这个类创建一个对象数组,麻烦给个例子? 学生类:classA{privateStringnameprivateintagepub ...

  9. java编写机器人_用JAVA编写自己的机器人一起“厮杀”

    什么是Robocode? 最近我在阅读一个关于极限编程(XP)的邮件列表,有人提议为对学习更多的XP方法学知识感兴趣的开发人员构建一个工作间.这位作者还建议,把一群人凑到一起,分成小组研究该方法学. ...

最新文章

  1. linux 系统邮件 查看清空
  2. PE文件结构(五岁以下儿童)基地搬迁
  3. 【Numpy 学习记录】np.stack 和 np.concatenate
  4. 个人博客源码_我的使用Sanic的个人博客源码开源了!
  5. 数学课本上的几大变态之处
  6. 现代软件工程系列 学生的精彩文章 (6) 项目总结
  7. 控件:DataGridView列类型
  8. windows oracle 宕机,windows上的oracle一次宕机恢复
  9. Xcode7 插件制作入门
  10. 子群和Lagrange定理
  11. 入门python之前,应该先了解这些
  12. web安全测试必须注意的五个方面
  13. 【情商 为什么情商比智商更重要】阅读笔记
  14. html网页如何导入word,怎么把网页导入word
  15. luogu P1195 口袋的天空
  16. python 中英文时间转换
  17. 开学了,献给就读IT相关专业的本科新生们
  18. 2020开年,C语言重回巅峰王座!
  19. Noise-contrastive Estimation(NCE)学习
  20. 2021年中式烹调师(初级)考试题及中式烹调师(初级)试题及解析

热门文章

  1. 憋不住的心里的一个想法,JVM的BYTECODE是完全平台无关的么?
  2. Yii2使用Cookie的注意事项
  3. java读取Oracle中大字段数据(CLOB)的方法
  4. Vue蚂蜂窝Vue-cli+webpack做的
  5. 计蒜客NOIP模拟赛(2) D2T2紫色百合
  6. but no declaration can be found for element #39;aop:aspectj-autoproxy#39;.
  7. UIScrollView控件常用属性
  8. Windows8应用生命周期 Metro Style Apps Lifecycle
  9. [转载]常用正则表达式
  10. (转帖)eclipse 下 搭建 django开发环境