编写时钟 Applet 程序
来源:互联网 发布:python 开源题库系统 编辑:程序博客网 时间:2024/06/04 18:56
这是学校 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();
}
}
}
结果如下图,遗憾的是左上角的时间显示比系统时间晚了几毫秒。
- 编写时钟 Applet 程序
- applet实现时钟程序
- 汇编语言编写时钟程序
- 编写时钟程序
- 简单APPLET程序编写与运行
- 简单Java Applet程序的编写
- 编写和运行简单的Applet程序
- C语言编写时钟程序
- 掌握Applet 类与Applet小程序的基本结构,能够编写Applet小程序;
- 一个经典的JAVA APPLET时钟程序(一)
- 一个经典的JAVA APPLET时钟程序(一)
- C51-------时钟程序(C语言编写的单片机时钟)
- Java 显示时钟:编写程序显示一个时钟
- actionscript编写的时钟小程序
- 用java编写的时钟程序
- 编写一个显示“欢迎学习Java"的Java Applet程序
- 编写一个显示“欢迎学习Java”的Java Applet程序
- 安装农历时钟 lunar applet
- MySql 模糊查询
- 高通功耗问题分析手段
- Java 静态块 、构造块、构造函数执行顺序
- 多github帐号的SSH key切换
- 一分钟教你知道乐观锁和悲观锁的区别(张高伟)
- 编写时钟 Applet 程序
- difference between clear data and clear cache ? Android
- PCA的数学原理
- Eclipse代码整体后退或前移
- openwrt系统初始化分析
- Spring task
- LeetCode-537. Complex Number Multiplication
- Linux下防火墙开启相关端口及查看已开启端口
- 使用iServer REST API发布工作空间(Java)