展开全部
这个是我以前自己做的,你e5a48de588b662616964757a686964616f31333330323936看看吧,希望对你有帮助
//导入包
import javax.swing.*;
import java.util.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.text.*;
public class MyClock extends Applet implements Runnable
{
private volatile Thread timer;
//定义变量
private int lastxs,lastys,lastxm,lastym,lastxh,lastyh;
private SimpleDateFormat formatter;
private String lastdate;
private Font clockFaceFont;
private Date currentDate;
private Color handColor;
private Color numberColor;
private int xcenter=80,ycenter=55;
public void init(){
int x,y;
lastxs=lastys=lastxm=lastym=lastxh=lastyh=0;
formatter=new SimpleDateFormat("EEE MMM dd hh:ss yyyy",Locale.getDefault());//设置时间格式
currentDate=new Date();//获取时间
lastdate=formatter.format(currentDate);
clockFaceFont=new Font("Serif",Font.PLAIN,14);
handColor=Color.BLUE;
numberColor=Color.darkGray;
try{
setBackground(new Color(Integer.parseInt(getParameter("bgcolor"),16)));
}catch(NullPointerException e){
}catch(NumberFormatException e){
}
try{
handColor=new Color(Integer.parseInt(getParameter("fgcolor1"),16));
}catch(NullPointerException e){
}catch(NumberFormatException e){
}
try{
numberColor=new Color(Integer.parseInt(getParameter("fgcolor2"),16));
}catch(NullPointerException e){
}catch(NumberFormatException e){
}
resize(300,300);
}
public void update(Graphics g){
int xh,yh,xm,ym,xs,ys;
int s=0,m=10,h=10;
String today;
currentDate=new Date();
formatter.applyPattern("s");
try{
s=Integer.parseInt(formatter.format(currentDate));
}catch(NumberFormatException n){
s=0;
}
formatter.applyPattern("m");
try{
m=Integer.parseInt(formatter.format(currentDate));
}catch(NumberFormatException n){
m=10;
}
formatter.applyPattern("h");
try{
h=Integer.parseInt(formatter.format(currentDate));
}catch(NumberFormatException n){
h=10;
}
xs=(int)(Math.cos(s*Math.PI/30-Math.PI/2)*45+xcenter);
ys=(int)(Math.sin(s*Math.PI/30-Math.PI/2)*45+ycenter);
xm=(int)(Math.cos(m*Math.PI/30-Math.PI/2)*40+xcenter);
ym=(int)(Math.sin(m*Math.PI/30-Math.PI/2)*40+ycenter);
xh=(int)(Math.cos((h*30+m/2)*Math.PI/180-Math.PI/2)*30+xcenter);
yh=(int)(Math.sin((h*30+m/2)*Math.PI/180-Math.PI/2)*30+ycenter);
//获取在底部显示的日期
formatter.applyPattern("EEE MMM dd HH: mm:ss yyyy");
today=formatter.format(currentDate);
g.setFont(clockFaceFont);
g.setColor(getBackground());
if(xs!=lastxs||ys!=lastys)
{
g.drawLine(xcenter,ycenter,lastxs,lastys);
g.drawString(lastdate,5,125);
}
if(xm!=lastxm||ym!=lastym)
{
g.drawLine(xcenter,ycenter-1,lastxm,lastym);
g.drawLine(xcenter-1,ycenter,lastxm,lastym);
}
if(xh!=lastxh||yh!=lastyh)
{
g.drawLine(xcenter,ycenter-1,lastxh,lastyh);
g.drawLine(xcenter-1,ycenter,lastxh,lastyh);
}
g.setColor(numberColor);
g.drawString(today,5,125);
g.drawLine(xcenter,ycenter,xs,ys);
g.setColor(handColor);
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);
lastxs=xs;lastys=ys;
lastxm=xh;lastym=ym;
lastdate=today;
}
public void paint(Graphics g){
g.setFont(clockFaceFont);
g.setColor(handColor);
g.drawArc(xcenter-50,ycenter-50,100,100,0,360);
g.setColor(numberColor);
g.drawString("9",xcenter-45,ycenter+3);
g.drawString("3",xcenter+40,ycenter+3);
g.drawString("12",xcenter-5,ycenter-37);
g.drawString("6",xcenter-3,ycenter+45);
g.setColor(numberColor);
g.drawString(lastdate,5,125);
g.drawLine(xcenter,ycenter,lastxs,lastys);
g.setColor(handColor);
g.drawLine(xcenter,ycenter-1,lastxm,lastym);
g.drawLine(xcenter-1,ycenter,lastxm,lastym);
g.drawLine(xcenter,ycenter-1,lastxh,lastyh);
g.drawLine(xcenter-1,ycenter,lastxh,lastyh);
}
public void start(){
timer=new Thread(this);
timer.start();
}
public void stop(){
timer=null;
}
public void run() {
//To change body of implemented methods use File | Settings | File Templates.
Thread me=Thread.currentThread();
while(timer==me){
try{
Thread.currentThread().sleep(100);
}catch(InterruptedException e){
}
repaint();
}
}
public static void main(String[] args) {
JFrame f=new JFrame("显示时钟");
f.setSize(200,180);
MyClock mc=new MyClock();
mc.init();
mc.start();
f.add(mc);
/* f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});*/
f.setDefaultCloseOperation(3);
f.show();
}
}
已赞过
已踩过<
你对这个回答的评价是?
评论
收起