//读取当前时间
currh=(int)cal2.get(Calendar.SECOND);
currm=(int)cal2.get(Calendar.MINUTE);
currs=(int)cal2.get(Calendar.HOUR_OF_DAY);
//这样做的话说我API已过时
//timeNow=new Date();
//currh=new Integer(timeNow.getHours());
//currm=new Integer(timeNow.getMinutes());
//currs=new Integer(timeNow.getSeconds());
if(setflag)
{ //判断是否设置了闹钟
//判断当前时间是否为闹钟所定的时间
if((currh.intValue()==Integer.valueOf(sethour.getText()).intValue())(currm.intValue()==Integer.valueOf(setmin.getText()).intValue())(currs.intValue()==Integer.valueOf(setsec.getText()).intValue()))
{
ring.play();
g.drawImage(gif1,83,280,this);
stopbutton.setVisible(true);
}
timedelta=currm.intValue()*60+currs.intValue()-Integer.valueOf(setmin.getText()).intValue()*60-Integer.valueOf(setsec.getText()).intValue();
if((timedelta=30))
{
//若当前时间与闹钟相差时间超过30秒,闹钟自动停
ring.stop();
//清除的方法
g.clearRect(83,280,20,30);
}
}
dat=null;
}
public void start()
{
if(timer==null)
{
timer=new Thread(this);//将timer实例化
timer.start();
}
}
public void stop()
{
timer=null;
}
//给创建线程后start之后自动执行的函数
public void run()
{
//在run()方法中,调用repaint()方法 , 以重绘小程序区,进行时钟显示的更新 。接着调用sleep方法让当前线程(也就是我们创建的线程clockthread)睡眠1000毫秒,因为我们每秒钟要更新一下显示 , 所以让它睡眠1秒
while(timer!=null)
{
try
{
timer.sleep(1000);
}
catch(InterruptedException e)
{}
//调用repaint时 , 会首先清除掉paint方法之前的画的内容,再调用paint方法
repaint();//刷新画面
}
timer=null;
}
//当AWT接收到一个applet的重绘请求时,它就调用applet的 update() , 默认地,update() 清除applet的背景,然后调用 paint() 。重载 update(),将以前在paint()中的绘图代码包含在update()中,从而避免每次重绘时将整个区域清除
//有两种方法可以明显地减弱闪烁:重载 update()或使用双缓冲 。
//使用双缓冲技术:另一种减小帧之间闪烁的方法是使用双缓冲,它在许多动画Applet中被使用 。其主要原理是创建一个后台图像,将需要绘制的一帧画入图像,然后调用DrawImage()将整个图像一次画到屏幕上去;好处是大部分绘制是离屏的,将离屏图像一次绘至屏幕上比直接在屏幕上绘制要有效得多,大大提高做图的性能 。
//双缓冲可以使动画平滑,但有一个缺点,要分配一张后台图像 , 如果图像相当大,这将需要很大一块内存;当你使用双缓冲技术时 , 应重载 update() 。
public void update(Graphics g)
{
Image offscreen_buf=null;
//采用双缓冲技术的update()方法
if(offscreen_buf==null)
offscreen_buf=createImage(600,420);
Graphics offg=offscreen_buf.getGraphics();
offg.clipRect(1,1,599,419);
paint(offg);
Graphics ong=getGraphics();
ong.clipRect(1,1,599,419);
ong.drawImage(offscreen_buf,0,0,this);
}
/** Creates a new instance of AlarmClock */
}
java如何在2048中实现时间java编写时钟程序_Java实现时钟小程序 原创
2021-02-17 00:47:37
无可就是九头鸟
码龄6年
关注
哎,好久没上博客园发东西了 , 上一次还是两个月前的五一写的一篇计算器博客 , 不过意外的是那个程序成了这学期的Java大作业,所以后来稍微改了一下那个程序就交了上去,这还是美滋滋 。然后五月中旬的时候写了一个2048小游戏,由于写完第二个版本第二天就生病了 , 休养了好几天才缓过来,最后嫌麻烦就没发园子里了 , 直接挂Github上了 。然后又忙着准备期末,期末玩休息了5天又开始数据库课程设计,用Java写了一个小系统 , 花了一个星期左右,写了差不多3500行了 。然后写完就放学了,放学的日子就感觉自己开始懒散了,静不下心来写东西,每天睡觉,看一些无聊的视频 。。。前几天算是缓过神来,找回了脑子,于是又开始想着在放弃Java之前再多写一点东西,于是花了两个下午写了一个时钟,感觉看着还行 。
推荐阅读
- 传奇服务器设置电信卡,传奇服务器设置教程
- 商洛专业sap技术服务,sap技术服务经理招聘
- css字体上下的距离代码,css文字上下行距怎么调
- js替换数组字符串函数,js替换数组中的某个元素
- java优质代码如何写 java经典代码大全
- xp系统如何安装.netframework的简单介绍
- 网络毕业设计答辩会问什么问题,网站毕业设计答辩问题
- mongodb文档的批量更新,mongodb更新list
- java对话框代码文本 java聊天对话框