社区
Java SE
帖子详情
图形问题
huwenhai617
2007-04-14 05:06:00
请问如何让一个图形在一运行程序开始就一直存在。例如时钟的图形。
...全文
205
2
打赏
收藏
图形问题
请问如何让一个图形在一运行程序开始就一直存在。例如时钟的图形。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ysuxiaochu
2007-04-15
打赏
举报
回复
// 程序:电子小时钟
// 范例文件:Clock.java
import java.awt.*;
import java.util.*; //为了使用其中的GregorianCalendar类
import java.applet.*;
public class Clock extends Applet implements Runnable
{
//=====资料成员==================================================
int hour,minute,second,ImageWidth,ImageHeight,X,Y,
width,height;
Image digit[],Background,OffScreen;
Thread newThread;
boolean showSeparator;
Graphics drawOffScreen;
MediaTracker MT;
GregorianCalendar time; //可用来获得时间与日期
//=====函数成员==================================================
public void init()
{
X = 50; //时间数字被绘制的起始位置
Y = 110;
MT = new MediaTracker(this);
digit = new Image[11];
width = 210; //重绘区域的大小
height = 135;
//使用MediaTracker追踪图像
Background = getImage(getDocumentBase(),"Images/clock.jpg");
MT.addImage(Background,0);
for(int i=0;i<11;i++)
{
digit[i] = getImage(getDocumentBase(),"Images/" + i + ".jpg");
MT.addImage(digit[i],0);
}
try
{
showStatus("图像加载中(Loading Images)...");
MT.waitForAll();
}
catch(InterruptedException E){ }
//获得图像的宽度与高度
ImageWidth = digit[0].getWidth(this);
ImageHeight = digit[0].getHeight(this);
//建立次画面
OffScreen = createImage(300,300);
drawOffScreen = OffScreen.getGraphics();
showSeparator = true; //显示时间分隔符
}
public void start() //start()函数
{
newThread = new Thread(this); //建立与启动新线程
newThread.start();
}
public void stop() //stop()函数
{
newThread = null; //将线程设为null
}
public void paint(Graphics g)
{
//只清除此部分区域的图像
drawOffScreen.clearRect(X,Y,width,height);
//绘制背景图像
drawOffScreen.drawImage(Background,0,0,this);
if(hour < 10) //绘制小时
{
drawOffScreen.drawImage(digit[0],X,Y,this);
drawOffScreen.drawImage(digit[hour],X+ImageWidth,Y,this);
}
else
{
drawOffScreen.drawImage(digit[hour/10],X,Y,this);
drawOffScreen.drawImage(digit[hour%10],X+ImageWidth,Y,this);
}
if(minute < 10) //绘制分钟
{
drawOffScreen.drawImage(digit[0],X+ImageWidth*2+10,Y,this);
drawOffScreen.drawImage(digit[minute],X+ImageWidth*3+10,Y,this);
}
else
{
drawOffScreen.drawImage(digit[minute/10],X+ImageWidth*2+10,Y,this);
drawOffScreen.drawImage(digit[minute%10],X+ImageWidth*3+10,Y,this);
}
if(second < 10) //绘制秒数
{
drawOffScreen.drawImage(digit[0],X+ImageWidth*4+15,
Y+ImageHeight-30,15,30,this);
drawOffScreen.drawImage(digit[second],X+ImageWidth*4+30,
Y+ImageHeight-30,15,30,this);
}
else
{
drawOffScreen.drawImage(digit[second/10],X+ImageWidth*4+15,
Y+ImageHeight-30,15,30,this);
drawOffScreen.drawImage(digit[second%10],X+ImageWidth*4+30,
Y+ImageHeight-30,15,30,this);
}
if(showSeparator) //绘制时间分隔符(闪烁效果)
drawOffScreen.drawImage(digit[10],X+ImageWidth*2,Y+10,this);
//将次画面贴到主画面中
g.drawImage(OffScreen,0,0,this);
}
public void update(Graphics g) //update()函数
{
paint(g); //只单纯调用paint()函数
}
public void run()
{
while(newThread != null) //动画循环
{
//time将包含目前系统的时间与日期
time = new GregorianCalendar();
//取出目前时间的小时、分钟和秒数
hour = time.get(Calendar.HOUR_OF_DAY);
minute = time.get(Calendar.MINUTE);
second = time.get(Calendar.SECOND);
if(second % 2 == 0) //控制时间分隔符的闪动
showSeparator = true;
else
showSeparator = false;
repaint(X,Y,width,height); //重新绘制图像
try
{
Thread.sleep(500); //暂停程序执行500毫秒
}
catch(InterruptedException E){ }//没有进行例外处理
}
}
}
miukoo
2007-04-15
打赏
举报
回复
你把他做成闪屏不就OK了!
交流:274009909
24小时学通qt编程(PDF)
改善程序性能,介绍Qt程序的国际化、移植、调试等
问题
,以及怎样使用构造程序简单快捷地创建
图形
界面。附录部分给出了每章测验题答案和常用的Qt类描述。全书分为24个学时,每一学时内容均以前一学时为基础。
Intel(R)G33/G31 Express Chipset Family 显卡驱动
安装这个驱动程序对于拥有Intel G33/G31 Express Chipset的用户至关重要,因为正确的驱动可以确保显卡功能正常运行,提供稳定的
图形
性能,同时解决可能出现的硬件兼容性
问题
。在安装之前,用户需要确保自己的系统...
200个经典C程序【源码】
135 设置
图形
方式下的文本类型 136 绘制正多边形 137 正六边形螺旋图案 138 正方形螺旋拼块图案 139
图形
法绘制圆 140 递归法绘制三角形图案 141
图形
法绘制椭圆 142 抛物样条曲线 143 Mandelbrot分形图案 ...
VC++编程100个实用实例源码
GDI(Graphics Device Interface)是Windows提供的
图形
绘制库,实例中会展示如何使用GDI函数进行
图形
绘制和图像处理。 通过这100个实例的学习,开发者不仅能够熟练掌握C++语言的基本语法,还能深入理解MFC框架的...
Windows桌面飘雪小程序源码(C#)
描述中提到"根据论坛中的
问题
制作的小游戏",意味着这个项目可能是开发者在解答某个技术
问题
或者回应用户需求时创作的。它是一个“圣诞节桌面下雪的小程序”,暗示了该程序设计的主题是与圣诞节相关的,具有一定的...
Java SE
62,628
社区成员
307,259
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章