用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字

请选择技术分类

 *如果你找不到更细的分类,可以选择上级分类
当前位置:云代码 - 技术问答 - Java

java时钟

 悬赏:10|提问者:Eyes|浏览:1922
举报|2015-12-10
你好,,请问能否传我一篇java时钟的设计呢,,非常急,,,谢谢,,

我来回答

所有回答
举报|(0)|(0)2016-04-21
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.*;
import java.util.Calendar;
import java.util.GregorianCalendar;

class Clock extends JFrame implements ActionListener{

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 Clock(){
super("Clock by kikiwawa");
setDefaultCloseOperation(3);
setSize(200,200);
setBackground(Color.BLACK);
setLocation(300,150);
setResizable(false);
setVisible(true);
int delay = 1000;

ActionListener drawClock = new ActionListener(){
public void actionPerformed(ActionEvent evt){
repaint();
}
};

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

public void actionPerformed(ActionEvent e){
}

public void paint(Graphics g){
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(4.0f));
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;

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;
}

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;
if(nowh<10) st="0"+nowh;else st=""+nowh;
if(nowm<10) st+=":0"+nowm;else st+=":"+nowm;
if(nows<10) st+=":0"+nows;else st+=":"+nows;

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;

if(olds_x>0){
g.setColor(getBackground());
g.drawLine(x0,y0,olds_x,h-olds_y);
}
else{
old_m = mm;
old_h = hh;
}

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.4f));

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){
Clock c = new Clock();
} }
举报|(1)|(0)2016-05-11
sss
举报|(0)|(0)2016-05-12
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.*;
import java.util.Calendar;
import java.util.GregorianCalendar;


class Clock extends JFrame implements ActionListener{


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 Clock(){
super("Clock by kikiwawa");
setDefaultCloseOperation(3);
setSize(200,200);
setBackground(Color.BLACK);
setLocation(300,150);
setResizable(false);
setVisible(true);
int delay = 1000;


ActionListener drawClock = new ActionListener(){
public void actionPerformed(ActionEvent evt){
repaint();
}
};


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


public void actionPerformed(ActionEvent e){
}


public void paint(Graphics g){
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(4.0f));
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;


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;
}


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;
if(nowh<10) st="0"+nowh;else st=""+nowh;
if(nowm<10) st+=":0"+nowm;else st+=":"+nowm;
if(nows<10) st+=":0"+nows;else st+=":"+nows;


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;


if(olds_x>0){
g.setColor(getBackground());
g.drawLine(x0,y0,olds_x,h-olds_y);
}
else{
old_m = mm;
old_h = hh;
}


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.4f));


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){
Clock c = new Clock();
} }
举报|(0)|(0)2016-05-21
看我的代码  应用--时钟
举报|(0)|(0)2017-04-18
??
举报|(0)|(0)2018-03-14
666
举报|(0)|(0)2018-11-28
哈哈哈
#8542
举报|(0)|(0)2018-12-25
111
举报|(0)|(0)2019-05-25
HT
举报|(0)|(0)2019-07-30
111
举报|(0)|(0)2019-11-01
求学
举报|(0)|(0)2019-11-02
eclipse
举报|(0)|(0)2021-11-06
1

相关提问