import?java.awt.*;
創(chuàng)新互聯(lián)建站堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站制作、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的羅莊網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
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;
//創(chuàng)建一個監(jiān)聽事件
setVisible(true);
ActionListener?drawClock?=?new?ActionListener(){
public?void?actionPerformed(ActionEvent?evt){
repaint();
}
};
//創(chuàng)建一個時間計數(shù)器,每一秒觸發(fā)一次
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;
}
//獲得現(xiàn)在的時間
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);
//計算時間與度數(shù)的關(guān)系
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();
}
}
//整理一下
這里有一個時鐘的類,你看一下吧,不明白你的 100毫秒的時鐘 是什么意思。
import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.geom.Line2D;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
public class ClockAs 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],// 用來表示秒針端點(diǎn)坐標(biāo)的數(shù)組
pointSY[] = new double[60], pointMX[] = new double[60], // 用來表示分針端點(diǎn)坐標(biāo)的數(shù)組
pointMY[] = new double[60], pointHX[] = new double[60], // 用來表示時針端點(diǎn)坐標(biāo)的數(shù)組
pointHY[] = new double[60];
ClockAs() {
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)時針位置
pointHY[0] = -70;
double angle = 6 * Math.PI / 180; // 刻度為6度
for (int i = 0; i 59; i++) // 計算出各個數(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; i 60; 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(); // 秒針開始計時
}
public void paint(Graphics g) {
for (int i = 0; i 60; 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); // 鐘表中心的實(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)); // 獲取時間中的秒
int h = hour % 12;
a = second; // 秒針端點(diǎn)的坐標(biāo)
b = munite; // 分針端點(diǎn)的坐標(biāo)
c = h * 5 + munite / 12; // 時針端點(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("時鐘");
JPanel jp = new JPanel();
jp.add(jb);
jp.add(jb1);
ClockAs clock = new ClockAs();
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();
}
}
import java.awt.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.Timer;
public class Test extends JFrame implements ActionListener{
Timer t=new Timer(1000,this);
GregorianCalendar calendar=new GregorianCalendar();
JLabel label1=new JLabel(new Date().toString()),
label2=new JLabel("
");
public Test(){
super("TIME");
Container c=this.getContentPane();
c.setLayout(new FlowLayout());
c.add(label1);c.add(label2);
t.start();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(200,200,200,100);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e){
Date date=new Date();
calendar.setTime(date);
if(e.getSource()==t){
label1.setText(date.toString());
if(calendar.get(Calendar.MINUTE)==0)//當(dāng)分鐘為0報時
if(calendar.get(Calendar.SECOND)=5){//持續(xù)5秒報時
if(calendar.get(Calendar.SECOND)%2==0)
label2.setText("現(xiàn)在是北京時間"+calendar.get(Calendar.HOUR_OF_DAY)+"點(diǎn)整。");
if(calendar.get(Calendar.SECOND)%2==1)
label2.setText("
");
}
}
}
public static void main (String[] args) {
new Test();
}
}
package?test;
import?java.util.*;
import?java.awt.*;
import?java.awt.event.*;
import?java.applet.*;
public?class?Test5?extends?Applet?{
private?final?Panel?pan?=?new?Panel();
private?final?Label?time?=?new?Label();
private?final?Button?btnGo?=?new?Button("開始");
private?final?Button?btnPouse?=?new?Button("暫停");
private?final?Button?btnReset?=?new?Button("復(fù)位");
private?final?StopwatchThread?swThread?=?new?StopwatchThread();
private?class?btnGoListener?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
???
swThread.go();
btnGo.setEnabled(false);
}
}
private?class?btnPouseListener?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
???if(btnGo.isEnabled()){
???return?;
???}
?if?(btnPouse.getLabel().equals("繼續(xù)"))?{
swThread.go();
btnPouse.setLabel("暫停");
}?else?if?(btnPouse.getLabel().equals("暫停"))?{
swThread.noGo();
btnPouse.setLabel("繼續(xù)");
}
}
}
private?class?btnResetListener?implements?ActionListener?{
public?void?actionPerformed(ActionEvent?e)?{
swThread.reset();
btnGo.setEnabled(true);
btnGo.setLabel("開始");
btnPouse.setLabel("暫停");
}
}
private?class?StopwatchThread?extends?Thread?{
private?boolean?going?=?false;
private?long?prevElapsed?=?0;
private?Date?startDate?=?new?Date();
private?long?elapsedTime()?{
return?prevElapsed?+
(going???new?Date().getTime()?-?startDate.getTime()?:?0);
}
private?String?msToString(long?time)?{
???System.out.println(time+"??"+((0*60+2)*1000+999));
if(((99*60+59)*1000+983)=time((99*60+59)*1000+999)=time){//((0*60+2)*1000+983)=time((0*60+2)*1000+999)=time
if?(time?%?1000??990)
time?+=?2;
swThread.noGo();
}
String?ms,?sec,?min;
if?(time?%?10?=?5)
time?+=?5;
ms?=?Long.toString(time?%?1000);
while?(ms.length()??3)
ms?=?"0"?+?ms;
ms?=?ms.substring(0,?ms.length()?-?1);
time?/=?1000;
sec?=?Long.toString(time?%?60);
if?(sec.length()?==?1)?sec?=?"0"?+?sec;
time?/=?60;
min?=?Long.toString(time);
return?min?+?":"?+?sec?+?"."?+?ms;
}
public?void?go()?{
startDate?=?new?Date();
going?=?true;
}
public?void?noGo()?{
prevElapsed?=?elapsedTime();
going?=?false;
}
public?void?reset()?{
going?=?false;
prevElapsed?=?0;
}
public?void?run()?{
while?(true)?{
time.setText(msToString(elapsedTime()));
yield();
}
}
}
public?void?init()?{
setLayout(new?GridLayout(2,2));
setBackground(Color.lightGray);
setForeground(Color.black);
pan.setLayout(new?GridLayout(3,2));
pan.add(new?Label("計時:"));
time.setForeground(Color.blue);
pan.add(time);
pan.add(btnGo);
pan.add(btnPouse);
pan.add(btnReset);
pan.add(new?Label());
add(pan);
btnGo.addActionListener(new?btnGoListener());
btnReset.addActionListener(new?btnResetListener());
btnPouse.addActionListener(new?btnPouseListener());
swThread.setDaemon(true);
swThread.start();
}
public?static?void?main(String[]?args)?{
Test5?applet?=?new?Test5();
Frame?aFrame?=?new?Frame("計時器");
aFrame.addWindowListener(new?WindowAdapter()?{
public?void?windowClosing(WindowEvent?e)?{
System.exit(0);
}
});
aFrame.add(applet,?BorderLayout.CENTER);
aFrame.setSize(400,?200);
applet.init();
applet.start();
aFrame.setVisible(true);
}
}
可以改變有注釋的那個if語句里面的值來判斷什么時候停止
搞不懂為什么要匿名提問,真的那么怕笑話,不至于吧!
import java.util.Timer;
import java.util.Date;
import java.text.SimpleDateFormat;
public class Alarm
{
public static void main(String[] args)
{
Timer timer = new Timer();
try{
timer.schedule(new task(),1000,1000);
}
catch(IllegalStateException e)
{
System.out.println("時間到");
}
}
static class task extends java.util.TimerTask
{
public void run()
{
Date now = new Date();
SimpleDateFormat time = new SimpleDateFormat("HH:mm:ss");
if(time.format(now).toString.equals("23:27:00"))
this.cancel();
else
System.out.println(time.format(now));
}
}
}
分太少了啊
給你一個只實(shí)現(xiàn)了時鐘的面板。
import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.Timer;
public class Clock extends JFrame implements ActionListener
{
private static final long serialVersionUID = 6790815213225162093L;
Timer timer;
int x,y,old_X,old_Y, r,x0,y0,w,h,ang;
int sdo,mdo,hdo,old_M,old_H;
TimeZone tz =TimeZone.getTimeZone("JST");
final double RAD=Math.PI/180.0;
public Clock()
{
super("時鐘");
setSize(300,300);
setBackground(new Color(0,0,192));
setResizable(false);
Dimension scr=Toolkit.getDefaultToolkit().getScreenSize();
Dimension fra=this.getSize();
if(fra.widthscr.width)
{
fra.width=scr.width;
}
if(fra.heightscr.height)
{
fra.height=scr.height;
}
this.setLocation((scr.width-fra.width)/2,(scr.height-fra.height)/2);
setVisible(true);
int delay = 1000;
ActionListener taskPerformer = new ActionListener()
{
public void actionPerformed(ActionEvent evt)
{
repaint();
}
};
new Timer(delay, taskPerformer).start();
}
public void actionPerformed(ActionEvent e)
{
timer.restart();
}
public void paint( Graphics g )
{
Insets insets = getInsets();
int L0 = (insets.left)/2, T0 = (insets.top)/2;
int hh,mm,ss;
String st;
h=getSize().height;
g.setColor(Color.white);
g.drawOval(L0+30,T0+30,h-60,h-60);
g.drawOval(L0+32,T0+32,h-64,h-64);
r=h/2-30;
x0=30+r-5+L0;
y0=30+r-5-T0;
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;
}
x0=30+r+L0; y0=30+r+T0;
Calendar now=Calendar.getInstance();
hh=now.get(Calendar.HOUR_OF_DAY);
mm=now.get(Calendar.MINUTE);
ss=now.get(Calendar.SECOND);
g.setColor(Color.pink);
g.fillRect(L0,T0,60,28);
g.setColor(Color.blue);
if (hh 10) st="0"+hh; else st=""+hh;
if (mm 10) st=st+":0"+mm; else st=st+":"+mm;
if (ss 10) st=st+":0"+ss; else st=st+":"+ss;
g.drawString(st,L0,T0+25);
sdo=90-ss*6;
mdo=90-mm*6;
hdo=90-hh*30-mm/2;
if (old_X 0)
{
g.setColor(getBackground());
g.drawLine(x0,y0,old_X,(h-old_Y));
} else
{
old_M=mdo;
old_H=hdo;
}
g.setColor(Color.yellow);
x=(int)((r-8)*Math.cos(RAD*sdo)+x0);
y=(int)((r-8)*Math.sin(RAD*sdo)+y0)-2*T0;
g.drawLine(x0,y0,x,(h-y));
old_X=x;
old_Y=y;
if (mdo != old_M)
{
line(g,old_M,(int)(r*0.7),getBackground());
old_M=mdo;
}
if (hdo != old_H)
{
line(g,old_H,(int)(r*0.5),getBackground());
old_H=hdo;
}
line(g,mdo,(int)(r*0.7),Color.green);
line(g,hdo,(int)(r*0.5),Color.red);
}
public void line(Graphics g, int t, int n, Color c)
{
int [] xp = new int[4];
int [] yp = new int[4];
xp[0]=x0;
yp[0]=y0;
xp[1]= (int)((n-10)*Math.cos(RAD*(t-4))+x0);
yp[1]=h-(int)((n-10)*Math.sin(RAD*(t-4))+y0);
xp[2]= (int)( n *Math.cos(RAD* t )+x0);
yp[2]=h-(int)( n *Math.sin(RAD* t )+y0);
xp[3]= (int)((n-10)*Math.cos(RAD*(t+4))+x0);
yp[3]=h-(int)((n-10)*Math.sin(RAD*(t+4))+y0);
g.setColor(c);
g.fillPolygon(xp,yp,4);
}
public static void main(String args[])
{
new Clock();
}
}
當(dāng)前標(biāo)題:java鐘上時刻點(diǎn)的代碼 java時鐘程序代碼
網(wǎng)站路徑:http://www.muchs.cn/article30/hggdpo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、網(wǎng)站設(shè)計、外貿(mào)網(wǎng)站建設(shè)、服務(wù)器托管、自適應(yīng)網(wǎng)站、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)