JAVA楼盘时钟代码 java编写时钟类

求java七段数字时钟的源代码

其实这个很有趣。自己写很有意思

创新互联公司专注于企业营销型网站、网站重做改版、伊宁网站定制设计、自适应品牌网站建设、H5场景定制电子商务商城网站建设、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为伊宁等各大城市提供网站开发制作服务。

先画每个数字.....

每个数字图样分7段,给每一段编号,

5 1

6

4 2

3

然后设计10个长度为7的数组,作为每个数字的字体

boolean[][] font={

{true, true,true,true,true,true,false},//数字0的字样控制开关

{false, true,true,false,false,false,false},//数字1的字样控制开关

//等等等等

{true, true,true,true,false,true,true},//数字9的字样控制开关

}

或者,熟练的就用一个byte数组就够了

byte[] font={

0x3F, ////数字0的字样控制开关

0x06,//数字1的字样控制开关

//等等

0x6F//数字9的字样控制开关

}

然后画几个黑段拼出一个数字,对应数组显示,用6个数字实例拼出最终效果,

这是模拟真机的写法.

如果要简单,直接拿0-9共10张图片对应数值就可以了。

java编程利用按钮实现时钟的停止和开始功能(原代码)

如下:

import java.awt.*;

import java.awt.event.*;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.Timer;

import java.awt.geom.*;

import java.util.*;

class Clock 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];

Clock()

{ 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;i59;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;i60;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;i60;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);

 Clock clock=new Clock();

 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.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用SWT写时钟代码

#include time.h

#include stdio.h

#include stdlib.h

#define BUF_SIZE 80

int main()

{

time_t t;

struct tm *tm;

char s[BUF_SIZE];

if(time(t) == ((time_t)-1)) return 1;

tm = localtime(t);

if(!tm) return 1;

strftime(s, sizeof(s), ":%H:%M:%S", tm);

printf("%s\n", s);

system("pause");

return 0;

}


文章名称:JAVA楼盘时钟代码 java编写时钟类
网页链接:http://myzitong.com/article/dogseid.html