社区
Java SE
帖子详情
图形问题
huwenhai617
2007-04-14 05:06:00
请问如何让一个图形在一运行程序开始就一直存在。例如时钟的图形。
...全文
224
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
php传输数据arduino,使用php控制arduino UDP方法
arduino 接收数据一向挺麻烦的!其实在arduino的实例库中有 w5100网络模块的实例!只是大家可能对PHP不怎么了解!其实php是可以发送udp报文的,所以今天写了这个文章给大家一点启发!高手请掠过,...
Android 网络开发抓包工具Fiddler、tcpdump和Wireshark的使用
在window上使用 wireshark打开抓取的包 ***.pcap 文件.下面的截图,是根据自己的需要,筛选了 192.168.7.2 发送给 192.168.7.3 的包. 可以看到协议是采用的 UDP ,端口是使用的4052.然后设备端连接的wifi代理还需要设置为电脑端ip,这个目的也很明显,设备端wifi代理设为pc端ip后,设备端访问网络,其实都是借助p c端出去的了,所以通过fiddler就能很方便的查看到网络访问情况。好了,了解了关于fiddler的基本情况,下面动动手,搞起来吧~~
处女作,,QT+arduino的物联网小项目
这是大三所做的项目,距离完成项目的时间已经过去快十个月之久了,至于为什么今天想发出来是因为马上面临找工作了,想把所做的项目再复习复习,,希望能温故而知新吧O(∩_∩)O。 项目名称叫“智慧停车场”通过arduino等硬件设施来模拟停车场的场景,用QT写软件来实时监控停车场的周边环境以及车辆停放信息,通过WIFI实现软硬件的通信(可能有点了欧) 这个小项目由window软件(SmartPark)...
【工具】开发工具红黑榜 (TCP测试/HTTP测试/SHELL工具/串口工具……)
SSH工具 FinalShell (shell+文件传输+远程桌面) SSH/串口 工具 MobaXterm Xshell (缺点:收费) TCP/UDP测试工具 红: USR-TCP232-Test(功能强大)http://www.usr.cn/Download/27.html SocketTool.exe (缺点:没有日志功能,点击发送后发送框内的数据被清除) 灰: T............
运维系列:【工具】开发工具红黑榜 (TCP测试/HTTP测试/SHELL工具/串口工具……)
【工具】开发工具红黑榜 (TCP测试/HTTP测试/SHELL工具/串口工具……)
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章