在编写图形界面程序的过程中我们会发现,一旦将窗体拉伸(或最大化最小化),之前我们在窗体上绘制的图形就消失了,这是为什呢?原来,窗体包括其他组件都是计算机绘制出来的,我们一旦使窗体改变,之前的一切就需要重新绘制。但是,对于组件等有既定的重绘方法,对于我们所画出的图形却没有重绘方法
为了重绘所画图形,我们需要重写paint方法
//DrawingBoard继承自JFrame,可以重写paint方法
public class DrawingBoard extends JFrame {
public static void main(String[] args) {
DrawingBoard dB = new DrawingBoard();
dB.showFrame();
}
//存储图形的数组
public Shape_base[] array = new Shape_base[1000000];
//重写paint方法
public void paint(Graphics g) {
super.paint(g);
//重新绘制图形
for(int i=0;i<array.length;i++) {
Shape_base s = array[i];
if(s!=null) {
s.draw((Graphics2D)g);
}
else break;
}
}
......
}
Shape_base类作为图形基类
public class Shape_base {
public int x1,y1,x2,y2,x3,y3;
public Color color;
public int lineWidth = 1;
//重绘不同图形的方法,在不同的具体图形类中将被重写
public void d