java可视化界面开发–保存画图界面
保存画图界面
前言 前面自制了画图工具,可以在java制作的画图界面上进行画图编辑,但是问题是,当我们点击画图工具的缩小放大栏时,我们画的图形会被擦除,这涉及到一个java内部自带paint类的功用,我们所要做的,就是保存我们画的图形,这样当画图界面还原的时候,能够重现我们原本所画的图形。
先定义一个shape类
这里定义的 shape类是为了创建一个对象,从而保存我们的图形,比如,我们画了一条直线,那么我们需要保存两个点,这样,当我们重新画的时候,就有了依据。
// An highlighted block
package cz0822;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JFrame;
/*
这里新建立一个SHape类,用于保存各个图形的点,IFS对象(分形),画笔颜色等。
*/
public class Shape {
private JFrame jj;
private int x1,x2,y2,y1;//图像点坐标,如果是直线,那就是起止两个坐标,如果是矩形,就是对角线的两个点
private String name;//画什么样的图形
private int [] array1;//多边形点坐标
private int []array2;
private int []array3;
private int [] array4;
private IFS II;//分性对象
private int end;
private Color color;//图形颜色
public Shape(int x1,int y1,int x2,int y2,String name,int []array1,int []array2,int[]array3,int[]array4,int f,IFS II,Color color) {
this.x1=x1;
this.x2=x2;
this.y1=y1;
this.y2=y2;
this.name=name;
this.array1=array1;
this.array2=array2;
this.array3=array3;
this.array4=array4;
this.end=f;
this.II=II;
this.color=color;
}
/*
这部分实现复现功能,传递的参数有两个,画笔对象和JFrame对象
*/
public void reshape(Graphics G,JFrame JF) {
jj=JF;
G.setColor(color);
switch(name) {
case"直线":
G.drawLine(x1, y1,