「java时钟函数」java时钟程序代码

博主:adminadmin 2023-01-25 04:33:09 314

今天给各位分享java时钟函数的知识,其中也会对java时钟程序代码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

JAVA中关于时钟的程序,高分跪求解释

你这个比较有点意思, 呵呵

就说一个吧,时针怎么算

360 * minutes / (12 * 60) 这个很容易理解,就是当前分针多少度。

90 - 360 * minutes / (12 * 60)

为什么是90减去 360 * minutes / (12 * 60)呢?

其实写成 0 减去 360 * minutes / (12 * 60)也可以。你不过那样的话,你的表会快3个小时

日常来说的几点是相对于12点的位置来讲的,要是用图形描述的话就是 Y轴, 90度的位置

这里用90减去360 * minutes / (12 * 60)实在计算时针距离12点的相对弧度。

剩下的你自己看吧。估计差不多了

怎么用java编写时钟呀?

import

java.util.*;

import

java.awt.*;

import

java.applet.*;

//impelements

Runnable

是线程程序的接口

public

class

Clock

extends

Applet

implements

Runnable

{

Thread

timer

=

null;

//

定义线程实体timer

int

xcenter

=

400,

ycenter

=

50;

int

Radius

=

ycenter

-

5;

public

void

init()

{

resize(400,

125);//

设置时钟程序的窗口大小

setBackground(Color.white);//

设置小应用程序的背景色

}

public

void

paint(Graphics

g)

{

int

xh,

yh,

xm,

ym,

xs,

ys,

s,

m,

h;

String

today;

Date

dat

=

new

Date();

//

定义时间类dat

s

=

dat.getSeconds();

//

获得时间秒

m

=

dat.getMinutes();

//

获得时间分

h

=

dat.getHours();

today

=

dat.toLocaleString();

//

获得字符串时间格式

g.clearRect(0,

0,

size().width,

size().height);

//

消除小应用程序

xcenter

=

xcenter

-

1;

//

向左移动一个像素点

if

(xcenter

-50)

xcenter

=

400;

//

如果xcenter小于-50,则回到初始位置

//

计算秒的坐标

xs

=

(int)

(Math.cos(s

*

3.14f

/

30

-

3.14f

/

2)

*

(Radius

-

5)

+

xcenter);

ys

=

(int)

(Math.sin(s

*

3.14f

/

30

-

3.14f

/

2)

*

(Radius

-

5)

+

ycenter);

//

计算分钟的坐标

xm

=

(int)

(Math.cos(m

*

3.14f

/

30

-

3.14f

/

2)

*

(Radius

-

10)

+

xcenter);

ym

=

(int)

(Math.sin(m

*

3.14f

/

30

-

3.14f

/

2)

*

(Radius

-

10)

+

ycenter);

//

计算小时的坐标

xh

=

(int)

(Math.cos((h

*

30

+

m

/

2)

*

3.14f

/

180

-

3.14f

/

2)

*

(Radius

-

20)

+

xcenter);

yh

=

(int)

(Math.sin((h

*

30

+

m

/

2)

*

3.14f

/

180

-

3.14f

/

2)

*

(Radius

-

20)

+

ycenter);

g.setColor(Color.darkGray);

//

设置颜色

g.drawString("9",

xcenter

-

(Radius

-

5),

ycenter

+

3);

//

显示时钟上的数字‘9’

g.drawString("3",

xcenter

+

(Radius

-

10),

ycenter

+

3);

//

显示时钟上的数字‘3’

g.drawString("12",

xcenter

-

5,

ycenter

-

(Radius

-

13));

//

显示时钟上的数字'12'

g.drawString("6",

xcenter

-

3,

ycenter

+

(Radius

-

10));

//

显示时钟上的数字'6'

g.drawString(today,

0,

125);

//

显示字符串时钟

g.drawLine(xcenter,

ycenter,

xs,

ys);

//

画秒针

g.setColor(Color.blue);

//

设置颜色

g.drawArc(xcenter

-

Radius,

ycenter

-

Radius,

2

*

Radius,

2

*

Radius,

0,

360);

//

画钟

g.drawLine(xcenter,

ycenter

-

1,

xm,

ym);

//

画分针

g.drawLine(xcenter

-

1,

ycenter,

xm,

ym);

//

画分针

g.drawLine(xcenter,

ycenter

-

1,

xh,

yh);

//

画时针

g.drawLine(xcenter

-

1,

ycenter,

xh,

yh);

//

画时针

}

public

void

start()

{

if

(timer

==

null)

{

timer

=

new

Thread(this);

//

生成Thread(多线程程序)的对象实体

timer.start();

//

启动生成的线程

}

}

public

void

stop()

{

timer.stop();

//

停止线程的工作

timer

=

null;

//

放掉Thread对象

}

public

void

run()

//

改方法用来定义线程体,一旦线程被启动执行,就开始执行这个方法

{

while

(timer

!=

null)

{

try

{

Thread.sleep(150);

//

使当前正在执行的线程进入睡眠时间由参数millis确定,

//

单位时间是毫秒,当这个时间过去,线程即可运行的

while

(timer

!=

null)

{

try

{

Thread.sleep(150);//

使用当前正在执行的线程进入睡眠时间由参数

//

millis确定,单位是毫秒,当这个时间过去,线程即为可运行的

}

catch

(InterruptedException

e)

{

}

repaint();

//

repaint所做的事其实是去调用方法uadate重画效应用程序

}

timer

=

null;

}

catch

(InterruptedException

e)

{

}

}

}

//

所做的工作是先将整个效应用程序区域清除,再去调用paint,完成重画的动作

public

void

update(Graphics

g)

{

paint(g);

}

}

怎样用java 程序写一个时钟程序

面向对象思想写成:

下面是一个显示器类

public class Display {

private int value;//现在的值

private int limit;//上限值

Display( int limit) {

this.limit = limit;

}

public void increase() {

value++;

if(value == limit) {

value = 0;

}

}

public int getValue() {

return value;

}

public static void main(String[] args) {

Display d = new Display(24);

for(;;) {

d.increase();

System.out.println(d.getValue());

}

}

}

下面创建一个时钟对象:

public class Clock {

private Display h = new Display(24);

private Display min = new Display(60);

private Display s = new Display(60);

public void start () {

for(;;) {

s.increase();

if(s.getValue() == 0){//如果分重置,小时+1

min.increase();

if(min.getValue() == 0){//如果分重置,小时+1

h.increase();

}

}

System.out.printf("%02d:%02d:%02d\n",h.getValue(), min.getValue(),s.getValue());//格式输出

}

}

public static void main(String[] args) {

Clock clock = new Clock();

clock.start();

}

用JAVA 语言设计一个实时运行的时钟,请帮助我

不知道LZ是要Java 还是Javascript

给你贴个java的吧..

如果要javascript的,自己百度搜索一下,很多的

import java.awt.Color;

import java.util.*;

import java.awt.*;

import java.applet.*;

public class Clock extends Applet implements Runnable

{

Thread timer=null;

Label label;

int lastxs=50,lastys=30,lastxm=50,lastym=30,lastxh=50,lastyh=30;

public void init()

{

label=new Label(" ");

setBackground(Color.white);

add(label);

}

public void paint(Graphics g)

{

int xh,yh,xm,ym,xs,ys,s,m,h,xcenter,ycenter;

Date rightnow=new Date();

String today=rightnow.toLocaleString();

label.setText(today);

s=rightnow.getSeconds();

m=rightnow.getMinutes();

h=rightnow.getHours();

xcenter=100;

ycenter=80;

xs=(int)(Math.cos(s*3.14f/30-3.14f/2)*45+xcenter);

ys=(int)(Math.sin(s*3.14f/30-3.14f/2)*45+ycenter);

xm=(int)(Math.cos(m*3.14f/30-3.14f/2)*45+xcenter);

ym=(int)(Math.sin(m*3.14f/30-3.14f/2)*45+ycenter);

xh=(int)(Math.cos((h*30+m*2)*3.14f/180-3.14f/2)*30+xcenter);

yh=(int)(Math.sin((h*30+m*2)*3.14f/180-3.14f/2)*30+ycenter);

g.setFont(new Font("TimesToman",Font.PLAIN,14));

g.setColor(Color.orange);

g.fill3DRect(xcenter-50,ycenter-50,100,100,true);

g.setColor(Color.darkGray);

g.drawString("12",xcenter-5,ycenter-37);

g.drawString("3",xcenter+40,ycenter+3);

g.drawString("6",xcenter-3,ycenter+45);

g.drawString("9",xcenter-45,ycenter+3);

g.setColor(Color.orange);

if(xs!=lastxs||ys!=lastys)

{

g.drawLine(xcenter,ycenter,lastxs,lastys);

}

if(xm!=lastxm||ym!=lastym)

{

g.drawLine(xcenter,ycenter-1,lastxm,lastym);

g.drawLine(xcenter-1,ycenter,lastxm,lastym);

}

if(xh!=lastxh||yh!=lastyh)

{

g.drawLine(xcenter,ycenter-1,lastxh,lastyh);

g.drawLine(xcenter-1,ycenter,lastxh,lastyh);

}

g.setColor(Color.red);

g.drawLine(xcenter,ycenter,xs,ys);

g.drawLine(xcenter,ycenter-1,xm,ym);

g.drawLine(xcenter-1,ycenter,xm,ym);

g.drawLine(xcenter,ycenter-1,xh,yh);

g.drawLine(xcenter-1,ycenter,xh,yh);

lastxs=xs;

lastys=ys;

lastxm=xm;

lastym=ym;

lastxh=xh;

lastyh=yh;

}

public void start()

{

if(timer==null)

{

timer=new Thread(this);

timer.start();

}

}

public void stop()

{

timer=null;

}

public void run()

{

while(timer!=null)

{

try

{

Thread.sleep(1000);

}catch(InterruptedException ie){}

repaint();

}

timer=null;

}

public void update(Graphics g)

{

paint(g);

}

}

java 小时钟,怎么理解用数学函数求指针端点坐标

角度deg转弧度rad的方法如下

rad = deg/ 180.0 * 3.1415926;

java里封装好的方法是

rad=Math.toRadians(deg);

已知 圆心是 x,y ,半径是r ,弧度是rad 根据弧度计算圆周上点的坐标的方法

如果是正东方向,作为0度 起点,计算公式如下

double x1 = x + cos(rad)*r;

double y1 = y + sin(rad)*r;

如果是正北方向,作为0度的起点, 计算公式如下

[*说明,时钟就是以正北方向作为0度起点来计算度数的]

第一种写法

double x1 = x + sin(rad)*r;

double y1 = y - cos(rad)*r;

第二种写法

double x1 = x + sin(rad)*r;

double y1 = y + cos(rad+3.14159265358979323846)*r;

但是明显第一种写法更优雅一点 .

所以下面的代码,就可以简化修改

    hx=r1*Math.sin(hdeg)+x;

    hy=r1*Math.cos(hdeg+Math.PI)+y;  

    mx=r2*Math.sin(mdeg)+x;  

    my=r2*Math.cos(mdeg+Math.PI)+y;  

    sx=r3*Math.sin(sdeg)+x;   

    sy=r3*Math.cos(sdeg+Math.PI)+y;

建议修改成

hx = x + r1 * Math.sin(hdeg);

hy = y - r1 * Math.cos(hdeg);

mx = x + r2 * Math.sin(mdeg);

my = y - r2 * Math.cos(mdeg);

sx = x + r3 * Math.sin(sdeg);

sy = y - r3 * Math.cos(sdeg);

其他细节:

时钟的效果有严重的锯齿现象, 如下图

修改paintComponent 方法即可

public void paintComponent(Graphics g) {

super.paintComponent(g);

// 把g转成g2d对象

Graphics2D g2d = (Graphics2D) g;

//消除图像锯齿

g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

//消除文本锯齿

g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);

//设置字体格式

g2d.setFont(new Font("宋体",Font.BOLD,18));

//开始绘制

g2d.clearRect(0, 0, 500, 500);

g2d.drawString("我的简易时钟", 210, 50);

g2d.drawString("12", 245, 135);

g2d.drawString("3", 355, 250);

g2d.drawString("6", 245, 365);

g2d.drawString("9", 125, 250);

g2d.drawOval(120, 120, 250, 250);

g2d.drawLine(x, y, (int) hx, (int) hy);

g2d.drawLine(x, y, (int) mx, (int) my);

g2d.drawLine(x, y, (int) sx, (int) sy);

}

java时钟函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java时钟程序代码、java时钟函数的信息别忘了在本站进行查找喔。