long base=new GregorianCalendar(0,0,0,0,0,0).getTime().getTime(); 定義一個(gè)0毫秒的基數(shù),為了后面使用format做準(zhǔn)備。
創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司,提供成都網(wǎng)站建設(shè)、網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);可快速的進(jìn)行網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,是專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
DateFormat df=new SimpleDateFormat("HH:mm:ss"); 設(shè)置格式化的樣式
for循環(huán)是安裝一天時(shí)間長(zhǎng)度的總共有60*60*12*2秒(這個(gè)因?yàn)橐_到秒),在每個(gè)秒長(zhǎng)度時(shí)間上,分別獲得時(shí)針、分鐘和秒針?biāo)诒肀P(pán)的位置(表盤(pán)整個(gè)圓是60秒)。
然會(huì)判斷三個(gè)針位置是否是一樣的,如果一樣就輸入該時(shí)間。
如下:
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("開(kāi)始");
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],//用來(lái)表示秒針端點(diǎn)坐標(biāo)的數(shù)組
pointSY[]=new?double[60],
pointMX[]=new?double[60],?//用來(lái)表示分針端點(diǎn)坐標(biāo)的數(shù)組
pointMY[]=new?double[60],
pointHX[]=new?double[60],?//用來(lái)表示時(shí)針端點(diǎn)坐標(biāo)的數(shù)組
pointHY[]=new?double[60];
Clock()
{?secondTime=new?Timer(1000,this);
pointSX[0]=0;?????????????????????????//12點(diǎn)秒針位置
pointSY[0]=-100;
pointMX[0]=0;?????????????????????????//12點(diǎn)分針位置
pointMY[0]=-90;
pointHX[0]=0;?????????????????????????//12點(diǎn)時(shí)針位置
pointHY[0]=-70;
double?angle=6*Math.PI/180;??????????//刻度為6度
for(int?i=0;i59;i++)????????????????//計(jì)算出各個(gè)數(shù)組中的坐標(biāo)
{?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;????????????//坐標(biāo)平移
pointSY[i]=pointSY[i]+120;
pointMX[i]=pointMX[i]+120;????????????//坐標(biāo)平移
pointMY[i]=pointMY[i]+120;
pointHX[i]=pointHX[i]+120;????????????//坐標(biāo)平移
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();????????//秒針開(kāi)始計(jì)時(shí)
}
public?void?paint(Graphics?g)
{???for(int?i=0;i60;i++)?????//繪制表盤(pán)上的小刻度和大刻度
{??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);??//鐘表中心的實(shí)心圓
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));?//獲取時(shí)間中的秒
int?h=hour%12;
a=second;????????????????????//秒針端點(diǎn)的坐標(biāo)
b=munite;????????????????????//分針端點(diǎn)的坐標(biāo)
c=h*5+munite/12;?????????????//時(shí)針端點(diǎn)的坐標(biāo)
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("時(shí)鐘");
?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();
???}
}
運(yùn)行截圖:
有問(wèn)題就追問(wèn),滿意請(qǐng)采納。
小天才代碼有以下幾種:
1、打開(kāi)手表輸入“*#0769651#*”,自制特殊四觸點(diǎn)數(shù)據(jù)線即可利用ADB連接手表安裝第三方APP。
2、手表的其它開(kāi)發(fā)廠商名單,可以輸入“*#666#*”查看。
3、打開(kāi)手表網(wǎng)絡(luò)設(shè)置輸入“*#0769132#*”。
4、打開(kāi)手表電源設(shè)置輸入“*#0769789#*”。
5、修改手表屏幕分辨率(僅部分機(jī)型可用)“輸入*#0769456#*” ,切換手表服務(wù)器輸入“*#7583#*”。
6、查看手表IMEI和手表MEID,輸入“*#06 #”。
7、啟用手表零售演示模式輸入“*#941056#*”。
發(fā)展背景
隨著移動(dòng)技術(shù)的發(fā)展,許多傳統(tǒng)的電子產(chǎn)品也開(kāi)始增加移動(dòng)方面的功能,比如過(guò)去只能用來(lái)看時(shí)間的手表,現(xiàn)今也可以通過(guò)插卡來(lái)實(shí)現(xiàn)通話。
這種新手表可被稱(chēng)作電話手表,某些已經(jīng)上市銷(xiāo)售,這類(lèi)產(chǎn)品主要是為消費(fèi)者在不方便使用智能手機(jī)的情況下使用而設(shè)計(jì)的,比如孩子在玩耍不方便攜帶手機(jī),而家長(zhǎng)又需要聯(lián)系到孩子的,或者正在騎自行車(chē)或手上提滿了東西的時(shí)候。