怎么用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, 展开
绘制源码如下:根据具体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, 展开
3个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询