1.储存数据
当得到直线的相关数据时,需要储存数据,用于重绘。
可以新建一个类用来储存。
public void mousePressed(MouseEvent e) {
x1=e.getX();y1=e.getY();
}
public void mouseReleased(MouseEvent e) {
x2=e.getX();y2=e.getY();
Shape shape=new Shape(x1,x2,y1,y2,btnstrs);//建立一个类保存数据,将数据传过去
新建一个shape类
int x1,x2,y1,y2;
String name;
//构造方法传参
public shape(String name,int x1,int x2,int y1,int y2){
this.name=name;
this.x1=x1;this.x2=x2;this.y1=y1;this.y2=y2;
考虑到要储存多组数据,引入数组
Shape[] shapeArray=new Shape[100];
shapeArray [index]=shape;
index++
取出数据,进行重绘
1.在shape类中写一个绘图方法
public void drawshape(Graphics g) {
//swich:判断
switch(name){
case"zhixian":
g.drawLine(x1, y1, x2, y2);
break;
case "juxing":
g.drawRect(x1, y1, Math.abs(x1-x2), Math.abs(y1-y2));
break;
}
}
2.再重写paint方法,在paint中调用上述方法
public void paint(Graphics g){
super.paint();
for(int i=0;i<dl.shapeArray.length;i++){
Shape shapearray=dl.shapeArray[i];
if(shapearray!=null){
shapearray.drawshape(g);
}
}
}