1、搭建基本窗口框架
此部分是关于和用户交互之间的窗口,及一些参数的配置
public class DrawTest02 extends JFrame{
public void DrawTest02(){
JFrame jframe = new JFrame("画板");//创建JFrame对象 并对画板窗口进行命名
JFrame jFrame = this;
jframe.setSize(1000,800);//设定窗口大小
jframe.setDefaultCloseOperation(EXIT_ON_CLOSE);//关闭窗口会结束当前运行状态
jframe.setLocationRelativeTo(null);//设定画板页面中间
jframe.setLayout(new FlowLayout());//创建流布局,自动根据窗口大小排列
jframe.setVisible(true);//设定数据可视化开关
jframe.addMouseListener(drawListenerA);//添加监听的对象
}
创建工具类(颜色,坐标点等...)
class UtilityColor
{
Color color;
int x,x1,y,y1;
String TypeName;
public UtilityColor(Color color, int x, int x1, int y, int y1, String typeName) {
this.color = color;
this.x = x;
this.x1 = x1;
this.y = y;
this.y1 = y1;
TypeName = typeName;
}
public void drawShape(Graphics graphics)
{
graphics.setColor(color);
}
}
2、封装图形实现过程
此处是对于图像绘制的过程进行封装,方便重复调用
class Line extends UtilityColor{
//继承UtilityColor中的属性,并重写其中的实例方法
//这是因为子类之间的实现功能需求不同
public Line(Color color, int x, int x1, int y, int y1, String typeName) {
super(color, x, x1, y, y1, typeName);
}
public void drawShape(Graphics graphics){
super.drawShape(graphics);
graphics.drawLine(x,y,x1,y1);
}
}
class Rect extends UtilityColor{
//继承UtilityColor中的属性,并重写其中的实例方法
//这是因为子类之间的实现功能需求不同
//由于此处我们有两个选项一个是实心矩形,一个不是
//此处采用对于drawShpe方法重写中进行判断
//注意:判断的内容要是什么,由于过程当中若是判断的是非实心矩形,
//会造成实际画板上的内容,画一个非实心矩形,在使用实心矩形画不出来的情况
//实心圆同理
public Rect(Color color, int x, int x1, int y, int y1, String typeName) {
super(color, x, x1, y, y1, typeName);
}
public void drawShape(Graphics graphics){
super.drawShape(graphics);