怎么用java实现逐次的绘图呢? 就是一次绘一张,然后显示出来,紧接着把这次画的清空,再画下一次的。

我现在有一个java矩阵,想要读一遍矩阵根据矩阵的数值绘一次图,一共读取三次。可是我的程序会把三次绘制的结果画在一起。我想问有什么办法能够让它一遍一遍的画,每一次画完,先... 我现在有一个java矩阵,想要读一遍矩阵根据矩阵的数值绘一次图,一共读取三次。可是我的程序会把三次绘制的结果画在一起。我想问有什么办法能够让它一遍一遍的画,每一次画完,先把这一次画出来的结果显示出来,然后再开始画下一次。下一次开始画的时候都可以先把上次画出来的先清除掉。谢谢!
绘制源码如下:根据具体pnnum矩阵中元素的值绘制相应图像,第一遍读取绘制完成后,先输出图像结果,然后开始第二次循环,同时,要擦去上次绘制图像。最后图片效果,类似“一只”蚂蚁从图片的左面,走到画布的右面,不是变成“一排”蚂蚁。

public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
for(num = 0;num<3;num++){
for(k=0;k<pn;k++){
try{
Image imagewoods = ImageIO.read(new File("C:/Users/Evan/workspace/FinalAssignment/src/woods.gif"));
Image imagetermites = ImageIO.read(new File("C:/Users/Evan/workspace/FinalAssignment/src/te.gif"));
Image imagepredators = ImageIO.read(new File("C:/Users/Evan/workspace/FinalAssignment/src/pr.gif"));
if(pnnum[num][k]=="w")
g2.drawImage(imagewoods, (int)Math.floor(k/20)*30+18,(k%20)*30+2,10,10,null);
else
if(pnnum[num][k]=="t")
g2.drawImage(imagetermites,(int)Math.floor(k/20)*30+2,(k%20)*30+2,10,10,null);
else
if(pnnum[num][k]=="p")
g2.drawImage(imagepredators, (int)Math.floor(k/20)*30+2,(k%20)*30+18,10,
展开
 我来答
非我即仙
2011-01-11 · TA获得超过568个赞
知道小有建树答主
回答量:303
采纳率:0%
帮助的人:400万
展开全部
这个就是动画播放咯。。
如果你希望自动切换,那么你可以用线程画。结束的时候睡眠1~2秒,然后清空画布开始画另外一个。
如果你希望手动切换,那么你可以用button控件的Click事件控制它的操作。
高级java工程师
2011-01-11 · 超过67用户采纳过TA的回答
知道小有建树答主
回答量:344
采纳率:0%
帮助的人:111万
展开全部
你用rose,就是用模型,通过线将模型的关系展现出来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
oppps
2011-01-11 · TA获得超过2742个赞
知道小有建树答主
回答量:1488
采纳率:0%
帮助的人:1263万
展开全部
repaint();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式