[問題] 用java畫圖存成圖檔的問題
我想要用java做像excel那種的圖表
於是想說用視窗物件中的JPanel來做
在網路上找到了如何將JPanel中的圖形存起來的方法
於是改裝了一下 變成下面的程式
但執行起來發生了一些問題 我讓JPanel會畫出一個隨機的折線圖
然後執行10次 每次的圖形都會存檔
但去查看儲存的檔案發現 天啊~ 為什麼之前的圖形都還留著 新的圖形不斷蓋上去
我的for迴圈裡明明繼承JPanel的Draw物件都是新做的啊 為什麼會有之前圖形的殘留?
不知道出了什麼問題 有人可以教教我嗎...謝謝...
ps.
懷疑是ImageIO那裡的問題 因為其他物件都是新的
那部份程式碼都是抓來的 只會依樣畫壺籚..
還是說我要把上一個JPanel關掉才再開新的才行呢...Q_Q
import java.awt.*;
import javax.swing.*;
import java.io.*;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
public class Draw extends JPanel{
public Draw(){
setSize(200,100);
}
public void paintComponent(Graphics g){
int x1=0, y1=0, x2=0, y2=0;
for(int i=0;i<20;i++){
x2+=10;
y2=(int)(Math.random()*80);
g.drawLine(x1,y1+10,x2,y2+10);
x1=x2; y1=y2;
}
}
public static void main(String[] args){
int num=0;
for(int i=0;i<10;i++){
Draw panel=new Draw();
int width=panel.getWidth();
int height=panel.getHeight();
BufferedImage image =
new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = image.createGraphics();
panel.paint(g2);
g2.dispose();
try {
new File("testImg").mkdir();
File file=new File("testImg",(++num)+".png");
ImageIO.write(image, "png", file);
}catch(Exception e) {
e.printStackTrace();
}
}
}
}
--
▄▄ ▄▄ ▄▄▄ ▄ ▄▄▄
▄ ▄ ▄ ▄▄ ▄ ▄▄
▄ ▄ ▄ ▄ ▄▄
▄ ▄ ▄
▄ ▄ ▄ ▄ ▄▄
▄ ▄ ▄▄▄ ▄ ▄ ▄ ▄▄▄▄
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.213.190
推
04/30 02:03, , 1F
04/30 02:03, 1F
推
04/30 02:09, , 2F
04/30 02:09, 2F
→
04/30 02:15, , 3F
04/30 02:15, 3F
→
04/30 02:21, , 4F
04/30 02:21, 4F
推
04/30 09:25, , 5F
04/30 09:25, 5F
推
04/30 14:02, , 6F
04/30 14:02, 6F
→
04/30 23:52, , 7F
04/30 23:52, 7F
→
05/01 00:28, , 8F
05/01 00:28, 8F