荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: icefire (拒绝再玩), 信区: Java
标  题: 会走动的时钟
发信站: BBS 荔园晨风站 (Mon May 18 18:39:02 1998), 转信

发信人: Trubo007 (创可贴), 信区: Java
标 题: 会走动的时钟
发信站: BBS 水木清华站 (Sat May 16 15:23:08 1998)

//现有一java小程序,预与大家共享,欢迎指教
import java.util.*;//常用程序类的接口
import java.awt.*;
import java.applet.*;

//implements 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); //显示时钟上数字'9'
--
来去如风

※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.0.5]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店