十年網(wǎng)站開發(fā)經驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
import?javax.swing.*;

目前成都創(chuàng)新互聯(lián)公司已為超過千家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)頁空間、綿陽服務器托管、企業(yè)網(wǎng)站設計、磁縣網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
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(nowh10)?st="0"+nowh;else?st=""+nowh;
if(nowm10)?st+=":0"+nowm;else?st+=":"+nowm;
if(nows10)?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_x0){
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();
}???????}
4
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);
//
顯示時鐘上的數(shù)字‘9’
g.drawString("3",
xcenter
+
(Radius
-
10),
ycenter
+
3);
//
顯示時鐘上的數(shù)字‘3’
g.drawString("12",
xcenter
-
5,
ycenter
-
(Radius
-
13));
//
顯示時鐘上的數(shù)字'12'
g.drawString("6",
xcenter
-
3,
ycenter
+
(Radius
-
10));
//
顯示時鐘上的數(shù)字'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()
//
改方法用來定義線程體,一旦線程被啟動執(zhí)行,就開始執(zhí)行這個方法
{
while
(timer
!=
null)
{
try
{
Thread.sleep(150);
//
使當前正在執(zhí)行的線程進入睡眠時間由參數(shù)millis確定,
//
單位時間是毫秒,當這個時間過去,線程即可運行的
while
(timer
!=
null)
{
try
{
Thread.sleep(150);//
使用當前正在執(zhí)行的線程進入睡眠時間由參數(shù)
//
millis確定,單位是毫秒,當這個時間過去,線程即為可運行的
}
catch
(InterruptedException
e)
{
}
repaint();
//
repaint所做的事其實是去調用方法uadate重畫效應用程序
}
timer
=
null;
}
catch
(InterruptedException
e)
{
}
}
}
//
所做的工作是先將整個效應用程序區(qū)域清除,再去調用paint,完成重畫的動作
public
void
update(Graphics
g)
{
paint(g);
}
}
面向對象思想寫成:
下面是一個顯示器類
public?class?Display?{
private?int?value;//現(xiàn)在的值
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());
}
}
}
下面創(chuàng)建一個時鐘對象:
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();
}