java编写windows系统的日历和时钟

用java编写windows系统的日历和时钟,可以不要求设置时间,但起码有点像吧,邮箱[email protected],有点急哦~~12月11号23点之前有效~~
满意一定再加分~~谢了~~
额~~做了一个晚上,做到精神崩溃~~
《java技术及其应用》李卫华编著 清华大学出版社

import java.lang.Carlendar;
import java.util.Date;

class Mytime extends Thread{ //继承 Thread 类,实现多线程

Thread thread = new Thread();
thread.Start();
public void fun()
{
while(true)
{
Date date = new Date();
thread.Sleep(1000); //设置一秒钟提取一次
txtTime.setText(date) //将时间显示到文本框里,还要提取一下,你自己搞了
}
}
}

日历不写了,
这是动态时间,
你有电脑就要自己调试一下,
我敢肯定是这样做的,
我现在忘记了一些,
这样不行你把thread.Start();
放到while里面去,
但是你改一改绝对会成功,
因为我做了
祝你成功
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-09
不知道你用的java教程是哪个版本
我现在用的清华大学出版的《java2实用教程》上有这两个例子
可以去网上搜搜
时钟…………………………………………
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.Timer;

public class TestClock{
public static void main(String[] args){
Frame win = new Frame();
Label label = new Label();
win.add(new Clock(),BorderLayout.CENTER);
win.add(label,BorderLayout.SOUTH);
win.setVisible(true);
win.setSize(246,280);
win.validate();
win.addWindowListener(
new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
);
new Thread(new TestThread(label)).start();
}
}

class TestThread implements Runnable{
Label label;
TestThread(Label label){
this.label = label;
}

public void run() {
while(true){
label.setText(new SimpleDateFormat("HH:mm:ss").format(new Date()));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}

}

class Clock extends Canvas implements ActionListener{

/**
*
*/
private static final long serialVersionUID = 1L;

Date date;
Timer secondTime;
int hour,munite,second;
Line2D secondLine,muniteLine,hourLine;
int a,b,c;
double pointSX[] = new double[60],
pointSY[] = new double[60],
pointMX[] = new double[60],
pointMY[] = new double[60],
pointHX[] = new double[60],
pointHY[] = new double[60];
Clock(){
secondTime = new Timer(1000,this);
pointSX[0]=0;
pointSY[0]=-100;
pointMX[0]=0;
pointMY[0]=-90;
pointHX[0]=0;
pointHY[0]=-70;
double adgle=6*Math.PI/180;
for(int i=0;i<59;i++){
pointSX[i+1]=pointSX[i]*Math.cos(adgle)-Math.sin(adgle)*pointSY[i];
pointSY[i+1]=pointSY[i]*Math.cos(adgle)+Math.sin(adgle)*pointSX[i];
pointMX[i+1]=pointMX[i]*Math.cos(adgle)-Math.sin(adgle)*pointMY[i];
pointMY[i+1]=pointMY[i]*Math.cos(adgle)+Math.sin(adgle)*pointMX[i];
pointHX[i+1]=pointHX[i]*Math.cos(adgle)-Math.sin(adgle)*pointHY[i];
pointHY[i+1]=pointHY[i]*Math.cos(adgle)+Math.sin(adgle)*pointHX[i];
}
for(int i=0;i<60;i++){
pointSX[i] = pointSX[i]+120;
pointSY[i] = pointSY[i]+120;
pointMX[i] = pointMX[i]+120;
pointMY[i] = pointMY[i]+120;
pointHX[i] = pointHX[i]+120;
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);
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;
b = munite;
c = h*5+munite/12;
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();
}
}

}

太长了 我发过去了本回答被提问者采纳