资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

java钟上时刻点的代码 java时钟程序代码

JAVA画时钟代码

import java.awt.*;

创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站制作、做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的罗庄网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

import java.awt.event.*;

import javax.swing.*;

import sun.util.calendar.Gregorian;

import java.util.Calendar;

import java.util.GregorianCalendar;

public class ClockPointer extends JFrame{

int x, y, x0, y0, r, h, olds_x, olds_y, oldm_x, oldm_y, oldh_x, oldh_y, 

ss,mm, hh, old_m, old_h, ang;

final double RAD = Math.PI/180;

public ClockPointer(){

super("Java时钟");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Image image = getToolkit().getImage("clock.gif");

setIconImage(image);

setSize(400,400);

setBackground(Color.white);

//setLocation(300,150);

this.setLocationRelativeTo(null);

setResizable(true);

int delay = 1000;

//创建一个监听事件

setVisible(true);

ActionListener drawClock = new ActionListener(){

public void actionPerformed(ActionEvent evt){

repaint();

}

};

//创建一个时间计数器,每一秒触发一次

new Timer(delay, drawClock).start();

}

java.text.SimpleDateFormat fmTime = new java.text.SimpleDateFormat("HH:mm:ss");

//绘制图形

public void paint(Graphics g){

super.paint(g);

g.setFont(null);

Graphics2D g2D = (Graphics2D)g;

Insets insets = getInsets();

int L = insets.left/2, T = insets.top/2;

h = getSize().height;

g.setColor(Color.white);

//画圆

g2D.setStroke(new BasicStroke(2.0f));

g.setColor(Color.gray);

g.drawOval(L+40, T+40, h-80, h-80);

r = h/2 - 40;

x0 = 40 + r - 5 + L;

y0 = 40 + r - 5 - T;

ang = 60;

//绘制时钟上的12个字

for(int i = 1;i = 12;i ++){

x = (int)((r+10)*Math.cos(RAD*ang)+x0);

y = (int)((r+10)*Math.sin(RAD*ang)+y0);

g.setColor(Color.black);

g.drawString(""+i, x, h-y);

ang -=30;

}

//获得现在的时间

Calendar now = new GregorianCalendar();

int nowh = now.get(Calendar.HOUR_OF_DAY);

int nowm = now.get(Calendar.MINUTE);

int nows = now.get(Calendar.SECOND);

String st=fmTime.format(now.getTime());

//在窗体上显示时间

g.setColor(Color.pink);

g.fillRect(L, T, 50, 28);

g.setColor(Color.blue);

g.drawString(st,L+2,T+26);

//计算时间与度数的关系

ss = 90 - nows*6;

mm = 90 - nowm*6;

hh = 90 - nowh*30 - nowm/2;

x0 = r+40+L;

y0 = r+40+T;

g2D.setStroke(new BasicStroke(1.2f));

//擦除秒针

//if(olds_x  0){

//    g.setColor(getBackground());

//    // g.setColor(Color.gray);

//    g.drawLine(x0, y0, olds_x, h-olds_y); // (?)

//}

//绘制秒针

x = (int)(r*0.9*Math.cos(RAD*ss))+x0;

y = (int)(r*0.9*Math.sin(RAD*ss))+y0-2*T;

g.setColor(Color.yellow);

g.drawLine(x0, y0, x, h-y);

olds_x = x;

olds_y = y;

g2D.setStroke(new BasicStroke(2.2f));

//擦除分针

//if(old_m!=mm){

//    g.setColor(getBackground());

//    g.drawLine(x0,y0,oldm_x,h-oldm_y);

//}

//绘制分针

x = (int)(r*0.7*Math.cos(RAD*mm))+x0;

y = (int)(r*0.7*Math.sin(RAD*mm))+y0-2*T;

g.setColor(Color.green);

g.drawLine(x0,y0,x,h-y);

oldm_x = x;

oldm_y = y;

old_m = mm;

g2D.setStroke(new BasicStroke(3.2f));

//擦除时针

//if(old_h!=hh){

//    g.setColor(getBackground());

//    g.drawLine(x0,y0,oldh_x,h-oldh_y);

//}

//绘制时针

x = (int)(r*0.5*Math.cos(RAD*hh))+x0;

y = (int)(r*0.5*Math.sin(RAD*hh))+y0-2*T;

g.setColor(Color.red);

g.drawLine(x0,y0,x,h-y);

oldh_x = x;

oldh_y = y;

old_h = hh;

}

public static void main(String[] args){

new ClockPointer();

}

}

//整理一下

用 java 写一个clock的类,100毫秒的时钟 求代码。。越简单越好。。最好有注释

这里有一个时钟的类,你看一下吧,不明白你的 100毫秒的时钟 是什么意思。

import java.awt.BasicStroke;

import java.awt.BorderLayout;

import java.awt.Canvas;

import java.awt.Color;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.geom.Line2D;

import java.util.Date;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.Timer;

public class ClockAs extends Canvas implements ActionListener {

static JButton jb = new JButton("开始");

static JButton jb1 = new JButton("暂停");

Date date;

Timer secondTime;

int hour, munite, second;

Line2D secondLine, muniteLine, hourLine;

int a, b, c;

double pointSX[] = new double[60],// 用来表示秒针端点坐标的数组

pointSY[] = new double[60], pointMX[] = new double[60], // 用来表示分针端点坐标的数组

pointMY[] = new double[60], pointHX[] = new double[60], // 用来表示时针端点坐标的数组

pointHY[] = new double[60];

ClockAs() {

secondTime = new Timer(1000, this);

pointSX[0] = 0; // 12点秒针位置

pointSY[0] = -100;

pointMX[0] = 0; // 12点分针位置

pointMY[0] = -90;

pointHX[0] = 0; // 12点时针位置

pointHY[0] = -70;

double angle = 6 * Math.PI / 180; // 刻度为6度

for (int i = 0; i 59; i++) // 计算出各个数组中的坐标

{

pointSX[i + 1] = pointSX[i] * Math.cos(angle) - Math.sin(angle)

* pointSY[i];

pointSY[i + 1] = pointSY[i] * Math.cos(angle) + pointSX[i]

* Math.sin(angle);

pointMX[i + 1] = pointMX[i] * Math.cos(angle) - Math.sin(angle)

* pointMY[i];

pointMY[i + 1] = pointMY[i] * Math.cos(angle) + pointMX[i]

* Math.sin(angle);

pointHX[i + 1] = pointHX[i] * Math.cos(angle) - Math.sin(angle)

* pointHY[i];

pointHY[i + 1] = pointHY[i] * Math.cos(angle) + pointHX[i]

* Math.sin(angle);

}

for (int i = 0; i 60; i++) {

pointSX[i] = pointSX[i] + 120; // 坐标平移

pointSY[i] = pointSY[i] + 120;

pointMX[i] = pointMX[i] + 120; // 坐标平移

pointMY[i] = pointMY[i] + 120;

pointHX[i] = pointHX[i] + 120; // 坐标平移

pointHY[i] = pointHY[i] + 120;

}

secondLine = new Line2D.Double(0, 0, 0, 0);

muniteLine = new Line2D.Double(0, 0, 0, 0);

hourLine = new Line2D.Double(0, 0, 0, 0);

secondTime.start(); // 秒针开始计时

}

public void paint(Graphics g) {

for (int i = 0; i 60; i++) // 绘制表盘上的小刻度和大刻度

{

int m = (int) pointSX[i];

int n = (int) pointSY[i];

if (i % 5 == 0) {

g.setColor(Color.red);

g.fillOval(m - 4, n - 4, 8, 8);

} else {

g.setColor(Color.cyan);

g.fillOval(m - 2, n - 2, 4, 4);

}

}

g.fillOval(115, 115, 10, 10); // 钟表中心的实心圆

Graphics2D g_2d = (Graphics2D) g;

g_2d.setColor(Color.red);

g_2d.draw(secondLine);

BasicStroke bs = new BasicStroke(3f, BasicStroke.CAP_ROUND,

BasicStroke.JOIN_MITER);

g_2d.setStroke(bs);

g_2d.setColor(Color.blue);

g_2d.draw(muniteLine);

bs = new BasicStroke(6f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER);

g_2d.setStroke(bs);

g_2d.setColor(Color.green);

g_2d.draw(hourLine);

}

public void actionPerformed(ActionEvent e) {

if (e.getSource() == secondTime) {

date = new Date();

String s = date.toString();

hour = Integer.parseInt(s.substring(11, 13));

munite = Integer.parseInt(s.substring(14, 16));

second = Integer.parseInt(s.substring(17, 19)); // 获取时间中的秒

int h = hour % 12;

a = second; // 秒针端点的坐标

b = munite; // 分针端点的坐标

c = h * 5 + munite / 12; // 时针端点的坐标

secondLine.setLine(120, 120, (int) pointSX[a], (int) pointSY[a]);

muniteLine.setLine(120, 120, (int) pointMX[b], (int) pointMY[b]);

hourLine.setLine(120, 120, (int) pointHX[c], (int) pointHY[c]);

repaint();

}

if (e.getSource() == jb) {

secondTime.start();

}

if (e.getSource() == jb1) {

secondTime.stop();

}

}

public static void main(String args[]) {

JFrame win = new JFrame("时钟");

JPanel jp = new JPanel();

jp.add(jb);

jp.add(jb1);

ClockAs clock = new ClockAs();

jb.addActionListener(clock);

jb1.addActionListener(clock);

win.add(clock, BorderLayout.CENTER);

win.add(jp, "South");

win.setVisible(true);

win.setSize(246, 300);

win.setDefaultCloseOperation(3);

win.validate();

}

}

java程序 时钟 整点报时代码

import java.awt.*;

import java.util.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.Timer;

public class Test extends JFrame implements ActionListener{

Timer t=new Timer(1000,this);

GregorianCalendar calendar=new GregorianCalendar();

JLabel label1=new JLabel(new Date().toString()),

label2=new JLabel("

");

public Test(){

super("TIME");

Container c=this.getContentPane();

c.setLayout(new FlowLayout());

c.add(label1);c.add(label2);

t.start();

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setBounds(200,200,200,100);

this.setVisible(true);

}

public void actionPerformed(ActionEvent e){

Date date=new Date();

calendar.setTime(date);

if(e.getSource()==t){

label1.setText(date.toString());

if(calendar.get(Calendar.MINUTE)==0)//当分钟为0报时

if(calendar.get(Calendar.SECOND)=5){//持续5秒报时

if(calendar.get(Calendar.SECOND)%2==0)

label2.setText("现在是北京时间"+calendar.get(Calendar.HOUR_OF_DAY)+"点整。");

if(calendar.get(Calendar.SECOND)%2==1)

label2.setText("

");

}

}

}

public static void main (String[] args) {

new Test();

}

}

求java的计时器代码,应该比较简单的,来看看吧。

package test;

import java.util.*;

import java.awt.*;

import java.awt.event.*;

import java.applet.*;

public class Test5 extends Applet {

private final Panel pan = new Panel();

private final Label time = new Label();

private final Button btnGo = new Button("开始");

private final Button btnPouse = new Button("暂停");

private final Button btnReset = new Button("复位");

private final StopwatchThread swThread = new StopwatchThread();

private class btnGoListener implements ActionListener {

public void actionPerformed(ActionEvent e) {

   

swThread.go();

btnGo.setEnabled(false);

}

}

private class btnPouseListener implements ActionListener {

public void actionPerformed(ActionEvent e) {

   if(btnGo.isEnabled()){

   return ;

   }

 if (btnPouse.getLabel().equals("继续")) {

swThread.go();

btnPouse.setLabel("暂停");

} else if (btnPouse.getLabel().equals("暂停")) {

swThread.noGo();

btnPouse.setLabel("继续");

}

}

}

private class btnResetListener implements ActionListener {

public void actionPerformed(ActionEvent e) {

swThread.reset();

btnGo.setEnabled(true);

btnGo.setLabel("开始");

btnPouse.setLabel("暂停");

}

}

private class StopwatchThread extends Thread {

private boolean going = false;

private long prevElapsed = 0;

private Date startDate = new Date();

private long elapsedTime() {

return prevElapsed +

(going ? new Date().getTime() - startDate.getTime() : 0);

}

private String msToString(long time) {

   System.out.println(time+"  "+((0*60+2)*1000+999));

if(((99*60+59)*1000+983)=time((99*60+59)*1000+999)=time){//((0*60+2)*1000+983)=time((0*60+2)*1000+999)=time

if (time % 1000  990)

time += 2;

swThread.noGo();

}

String ms, sec, min;

if (time % 10 = 5)

time += 5;

ms = Long.toString(time % 1000);

while (ms.length()  3)

ms = "0" + ms;

ms = ms.substring(0, ms.length() - 1);

time /= 1000;

sec = Long.toString(time % 60);

if (sec.length() == 1) sec = "0" + sec;

time /= 60;

min = Long.toString(time);

return min + ":" + sec + "." + ms;

}

public void go() {

startDate = new Date();

going = true;

}

public void noGo() {

prevElapsed = elapsedTime();

going = false;

}

public void reset() {

going = false;

prevElapsed = 0;

}

public void run() {

while (true) {

time.setText(msToString(elapsedTime()));

yield();

}

}

}

public void init() {

setLayout(new GridLayout(2,2));

setBackground(Color.lightGray);

setForeground(Color.black);

pan.setLayout(new GridLayout(3,2));

pan.add(new Label("计时:"));

time.setForeground(Color.blue);

pan.add(time);

pan.add(btnGo);

pan.add(btnPouse);

pan.add(btnReset);

pan.add(new Label());

add(pan);

btnGo.addActionListener(new btnGoListener());

btnReset.addActionListener(new btnResetListener());

btnPouse.addActionListener(new btnPouseListener());

swThread.setDaemon(true);

swThread.start();

}

public static void main(String[] args) {

Test5 applet = new Test5();

Frame aFrame = new Frame("计时器");

aFrame.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

aFrame.add(applet, BorderLayout.CENTER);

aFrame.setSize(400, 200);

applet.init();

applet.start();

aFrame.setVisible(true);

}

}

可以改变有注释的那个if语句里面的值来判断什么时候停止

java闹钟程序代码

搞不懂为什么要匿名提问,真的那么怕笑话,不至于吧!

import java.util.Timer;

import java.util.Date;

import java.text.SimpleDateFormat;

public class Alarm

{

public static void main(String[] args)

{

Timer timer = new Timer();

try{

timer.schedule(new task(),1000,1000);

}

catch(IllegalStateException e)

{

System.out.println("时间到");

}

}

static class task extends java.util.TimerTask

{

public void run()

{

Date now = new Date();

SimpleDateFormat time = new SimpleDateFormat("HH:mm:ss");

if(time.format(now).toString.equals("23:27:00"))

this.cancel();

else

System.out.println(time.format(now));

}

}

}

JAVA 编写时钟程序

分太少了啊

给你一个只实现了时钟的面板。

import java.util.*;

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import javax.swing.Timer;

public class Clock extends JFrame implements ActionListener

{

private static final long serialVersionUID = 6790815213225162093L;

Timer timer;

int x,y,old_X,old_Y, r,x0,y0,w,h,ang;

int sdo,mdo,hdo,old_M,old_H;

TimeZone tz =TimeZone.getTimeZone("JST");

final double RAD=Math.PI/180.0;

public Clock()

{

super("时钟");

setSize(300,300);

setBackground(new Color(0,0,192));

setResizable(false);

Dimension scr=Toolkit.getDefaultToolkit().getScreenSize();

Dimension fra=this.getSize();

if(fra.widthscr.width)

{

fra.width=scr.width;

}

if(fra.heightscr.height)

{

fra.height=scr.height;

}

this.setLocation((scr.width-fra.width)/2,(scr.height-fra.height)/2);

setVisible(true);

int delay = 1000;

ActionListener taskPerformer = new ActionListener()

{

public void actionPerformed(ActionEvent evt)

{

repaint();

}

};

new Timer(delay, taskPerformer).start();

}

public void actionPerformed(ActionEvent e)

{

timer.restart();

}

public void paint( Graphics g )

{

Insets insets = getInsets();

int L0 = (insets.left)/2, T0 = (insets.top)/2;

int hh,mm,ss;

String st;

h=getSize().height;

g.setColor(Color.white);

g.drawOval(L0+30,T0+30,h-60,h-60);

g.drawOval(L0+32,T0+32,h-64,h-64);

r=h/2-30;

x0=30+r-5+L0;

y0=30+r-5-T0;

ang=60;

for (int i=1; i=12; i++)

{

x=(int)((r+10)*Math.cos(RAD*ang)+x0);

y=(int)((r+10)*Math.sin(RAD*ang)+y0);

g.drawString(""+i,x,h-y);

ang-=30;

}

x0=30+r+L0; y0=30+r+T0;

Calendar now=Calendar.getInstance();

hh=now.get(Calendar.HOUR_OF_DAY);

mm=now.get(Calendar.MINUTE);

ss=now.get(Calendar.SECOND);

g.setColor(Color.pink);

g.fillRect(L0,T0,60,28);

g.setColor(Color.blue);

if (hh 10) st="0"+hh; else st=""+hh;

if (mm 10) st=st+":0"+mm; else st=st+":"+mm;

if (ss 10) st=st+":0"+ss; else st=st+":"+ss;

g.drawString(st,L0,T0+25);

sdo=90-ss*6;

mdo=90-mm*6;

hdo=90-hh*30-mm/2;

if (old_X 0)

{

g.setColor(getBackground());

g.drawLine(x0,y0,old_X,(h-old_Y));

} else

{

old_M=mdo;

old_H=hdo;

}

g.setColor(Color.yellow);

x=(int)((r-8)*Math.cos(RAD*sdo)+x0);

y=(int)((r-8)*Math.sin(RAD*sdo)+y0)-2*T0;

g.drawLine(x0,y0,x,(h-y));

old_X=x;

old_Y=y;

if (mdo != old_M)

{

line(g,old_M,(int)(r*0.7),getBackground());

old_M=mdo;

}

if (hdo != old_H)

{

line(g,old_H,(int)(r*0.5),getBackground());

old_H=hdo;

}

line(g,mdo,(int)(r*0.7),Color.green);

line(g,hdo,(int)(r*0.5),Color.red);

}

public void line(Graphics g, int t, int n, Color c)

{

int [] xp = new int[4];

int [] yp = new int[4];

xp[0]=x0;

yp[0]=y0;

xp[1]= (int)((n-10)*Math.cos(RAD*(t-4))+x0);

yp[1]=h-(int)((n-10)*Math.sin(RAD*(t-4))+y0);

xp[2]= (int)( n *Math.cos(RAD* t )+x0);

yp[2]=h-(int)( n *Math.sin(RAD* t )+y0);

xp[3]= (int)((n-10)*Math.cos(RAD*(t+4))+x0);

yp[3]=h-(int)((n-10)*Math.sin(RAD*(t+4))+y0);

g.setColor(c);

g.fillPolygon(xp,yp,4);

}

public static void main(String args[])

{

new Clock();

}

}


当前标题:java钟上时刻点的代码 java时钟程序代码
文章地址:http://cdkjz.cn/article/hggdpo.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220