画板重绘
画板重绘:
我在制作了自己的画板,能够实现一些功能,比方说直线,圆,矩形等,但我发现一个问题,图形画在面板上的后,我们经过缩放后,原来画的东西又不在了,我又得重新画,但和原来的不一样了。
怎么实现重绘呢???
我们画的东西有直线,有矩形,有圆,那么怎样使得他们按照原来我们画的的那样重绘出来。
直线,圆,矩形都是图形,拥有相同的方法,和属性,所以可以有个图形父类
public abstract class NetJavaShape {public Color color;public abstract void draw (java.awt.Graphics g); }public class ImpLine extends NetJavaShape{private int x1,x2,y1,y2;public ImpLine(int x1,int y1,int x2,int y2,Color color){this.x1=x1;this.x2=x2;this.y1=y1;this.y2=y2;this.color=color;}public void draw(java.awt.Graphics g){g.setColor(color);g.drawLine(x1, y1, x2, y2);}} private MyQueue<NetJavaShape> shapes; NetJavaShape shape = new ImpLine(x1, y1, x2, y2, color);if (type.equals("直线"))shape = new ImpLine(x1, y1, x2, y2, color);shape.draw(gr);// 将绘制过的形状对象保存到队列shapes.add(shape);public class DrawPanel extends JPanel {public void paint(Graphics g) {super.paint(g);for(int i=0;i<DrawListener.shapes.size();i++){NetJavaShape shape=DrawListener.shapes.get(i);shape.draw(g);}}}