要個簡單一點的小時鐘代碼~
c語言時鐘代碼
FLASH時鐘代碼
JAVA畫時鐘代碼
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importsun.util.calendar.Gregorian;
importjava.util.Calendar;
importjava.util.GregorianCalendar;
publicclassClockPointerextendsJFrame{
intx,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;
finaldoubleRAD=Math.PI/180;
publicClockPointer(){
super("Java時鐘");
tDefaultCloOperation(JFrame.EXIT_ON_CLOSE);
Imageimage=getToolkit().getImage("clock.gif");
tIconImage(image);
tSize(400,400);
tBackground(Color.white);
//tLocation(300,150);
this.tLocationRelativeTo(null);
tResizable(true);
intdelay=1000;
//創建一個監聽事件
tVisible(true);
ActionListenerdrawClock=newActionListener(){
publicvoidactionPerformed(ActionEventevt){
repaint();
}
};
//創建一個時間計數器,每一秒觸發一次
newTimer(delay,drawClock).start();
}
java.text.SimpleDateFormatfmTime=newjava.text.SimpleDateFormat("HH:mm:ss");
//繪制圖形
publicvoidpaint(Graphicsg){
super.paint(g);
g.tFont(null);
Graphics2Dg2D=(Graphics2D)g;
Intsints=getInts();
intL=ints.left/2,T=ints.top/2;
h=getSize().height;
g.tColor(Color.white);
//畫圓
g2D.tStroke(newBasicStroke(2.0f));
g.tColor(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(inti=1;i<=12;i++){
x=(int)((r+10)*Math.cos(RAD*ang)+x0);
y=(int)((r+10)*Math.sin(RAD*ang)+y0);
g.tColor(Color.black);
g.drawString(""+i,x,h-y);
ang-=30;
}
//獲得現在的時間
Calendarnow=newGregorianCalendar();
intnowh=now.get(Calendar.HOUR_OF_DAY);
intnowm=now.get(Calendar.MINUTE);
intnows=now.get(Calendar.SECOND);
Stringst=fmTime.format(now.getTime());
//在窗體上顯示時間
g.tColor(Color.pink);
g.fillRect(L,T,50,28);
g.tColor(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.tStroke(newBasicStroke(1.2f));
//擦除秒針
//if(olds_x>0){
//g.tColor(getBackground());
////g.tColor(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.tColor(Color.yellow);
g.drawLine(x0,y0,x,h-y);
olds_x=x;
olds_y=y;
g2D.tStroke(newBasicStroke(2.2f));
//擦除分針
//if(old_m!=mm){
//g.tColor(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.tColor(Color.green);
g.drawLine(x0,y0,x,h-y);
oldm_x=x;
oldm_y=y;
old_m=mm;
g2D.tStroke(newBasicStroke(3.2f));
//擦除時針
//if(old_h!=hh){
//g.tColor(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.tColor(Color.red);
g.drawLine(x0,y0,x,h-y);
oldh_x=x;
oldh_y=y;
old_h=hh;
}
publicstaticvoidmain(String[]args){
newClockPointer();
}
}
//整理一下
vb中怎樣做出時鐘?
VB可使用Timer控件、Line控件和繪圖或加載圖片等制作指針式時鐘。
Timer 控件,通過引發 Timer 事件,Timer 控件可以有規律地隔一段時間執行一次代碼。
Line 控件,Line 控件是圖形控件,它顯示水平線、垂直線或者對角線。
運行時不能使用 Move 方法移動 Line 控件,但是可以通過改變 X1、X2、Y1 和 Y2
屬性來移動它或者調整它的大小。
Circle 方法,在對象上畫圓、橢圓或弧。
以下是通過加載圖片的指針式時鐘代碼:
OptionExplicit
PrivateConstPI=3.1415926
DimX(1)AsSingle,Y(1)AsSingle
DimOriAngleAsSingle,DestAngleAsSingle,rAsSingle
PrivateSubRotateLine(objLAsLine,bsPointXAsSingle,bsPointYAsSingle,RotateAngleAsSingle)
WithobjL
X(0)=.X1
Y(0)=.Y1
X(1)=.X2
Y(1)=.Y2
EndWith
DimiAsInteger
Fori=0To1
IfX(i)-bsPointX<>0Then
OriAngle=Atn((Y(i)-bsPointY)/(X(i)-bsPointX))
El
OriAngle=IIf(Y(i)>bsPointY,PI/2,1.5*PI)
EndIf
IfX(i)-bsPointX<0Then
IfOriAngle<0Then
OriAngle=PI-Abs(OriAngle)
El
OriAngle=PI+Abs(OriAngle)
EndIf
EndIf
DestAngle=OriAngle+RotateAngle
r=Sqr((X(i)-bsPointX)^2+(Y(i)-bsPointY)^2)
X(i)=bsPointX+r*Cos(DestAngle)
Y(i)=bsPointY+r*Sin(DestAngle)
Nexti
WithobjL
.X1=X(0)
.Y1=Y(0)
.X2=X(1)
.Y2=Y(1)
EndWith
EndSub
PrivateSubForm_Load()
Timer1.Interval=1000
DimiAsLong
Fori=1ToVal(Mid(Time$,7,2))
RotateLineLine3,Line3.X1,Line3.Y1,1*PI/30
Next
Fori=1ToVal(Mid(Time$,4,2))
RotateLineLine2,Line2.X1,Line2.Y1,1*PI/30
Next
Fori=1ToVal(Mid(Time$,1,2))*5'對時針
RotateLineLine1,Line1.X1,Line1.Y1,1*PI/30
Next
Fori=1ToVal(Mid(Time$,4,2))'對時針
RotateLineLine1,Line1.X1,Line1.Y1,1*PI/360
Next
EndSub
PrivateSubTimer1_Timer()
RotateLineLine3,Line3.X1,Line3.Y1,1*PI/30
RotateLineLine2,Line2.X1,Line2.Y1,PI/1800
IfMid(Time$,7,2)="00"OrMid(Time$,7,2)="30"Then
RotateLineLine1,Line1.X1,Line1.Y1,1*PI/720
EndIf
Me.Caption=Time$
EndSub
vb 時鐘代碼
本文發布于:2023-02-28 19:50:00,感謝您對本站的認可!
本文鏈接:http://m.newhan.cn/zhishi/a/167763760172033.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:時鐘代碼.doc
本文 PDF 下載地址:時鐘代碼.pdf
| 留言與評論(共有 0 條評論) |