} }
package 简单工厂模式;
import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D;
import 界面.*;
import 装饰模式.Conpotent;
public class DrawRec implements Draw{ public void draw(Graphics g, int x, int y, int x1, int y1, Color c) { Jpanel jp = new Jpanel(); jp.n = 4; jp.x = new int[]{x, x1, x1, x}; jp.y = new int[]{y, y, y1, y1}; g.setColor(c); jp.paintComponent(g); } @Override public void draw(Graphics g, int x, int y, int x1, int y1, Color c, float size) { float lineWidth = size; ((Graphics2D)g).setStroke(new BasicStroke(lineWidth)); Jpanel jp = new Jpanel(); jp.n = 4; jp.x = new int[]{x, x1, x1, x}; jp.y = new int[]{y, y, y1, y1}; g.setColor(c); jp.paintComponent(g); } }
package 简单工厂模式;
import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D;
import 界面.*;
import 装饰模式.Conpotent;
public class DrawTri implements Draw{ public void draw(Graphics g, int x, int y, int x1, int y1, Color c){ Jpanel jp = new Jpanel(); jp.n = 3; jp.x = new int[]{x, x1, x}; jp.y = new int[]{y, y1, y1}; g.setColor(c); jp.paintComponent(g); } @Override public void draw(Graphics g, int x, int y, int x1, int y1, Color c, float size) { float lineWidth = size; ((Graphics2D)g).setStroke(new BasicStroke(lineWidth)); Jpanel jp = new Jpanel(); jp.n = 3; jp.x = new int[]{x, x1, x}; jp.y = new int[]{y, y1, y1}; g.setColor(c); jp.paintComponent(g); } }
package 简单工厂模式;
public class proFactory { public static Draw produce(String name) { if(name.equals(\圆形\ return new DrawOval(); else if(name.equals(\矩形\ return new DrawRec(); else if(name.equals(\三角形\ return new DrawTri(); else return null; } }
装饰模式:
package 装饰模式;
import java.awt.Color; import java.awt.Graphics;
public interface Conpotent {
public void paint(Graphics g, int x, int y, int x1, int y1, Color c); }
package 装饰模式;
import java.awt.Color; import java.awt.Graphics;
public class Decorator implements Conpotent{ private Conpotent conpotent; public Decorator(Conpotent conpotent){ this.conpotent = conpotent; } public void paint(Graphics g, int x, int y, int x1, int y1, Color c) {} }
package 装饰模式;
import java.awt.Color; import java.awt.Graphics;
import 界面.Jpanel;
import 简单工厂模式.DrawRec;
public class Oval_Oval extends Decorator{ public Oval_Oval(Conpotent conpotent) { super(conpotent); } public void paint(Graphics g, int x1, int y1, int x2, int y2, Color c) { Oval ova = new Oval(); ova.draw(g,1+(x2-x1)/4, y1+(y2-y1)/4, x2-(x2-x1)/4, y2-(y2-y1)/4,c); } }
package 装饰模式;
import java.awt.Color;
import java.awt.Graphics;
import 简单工厂模式.DrawOval; import 简单工厂模式.DrawRec;
public class Oval extends DrawOval implements Conpotent{ public void paint(Graphics g, int x, int y, int x1, int y1, Color c) { DrawOval ova = new DrawOval(); ova.draw(g, x, y, x1, y1, c); } }
package 装饰模式;
import java.awt.Color; import java.awt.Graphics;
import 界面.Jpanel;
import 简单工厂模式.DrawRec;
public class Rec_Rec extends Decorator{ public Rec_Rec(Conpotent conpotent) { super(conpotent); } public void paint(Graphics g, int x1, int y1, int x2, int y2, Color c) { DrawRec rec = new DrawRec(); rec.draw(g,1+(x2-x1)/4, y1+(y2-y1)/4, x2-(x2-x1)/4, y2-(y2-y1)/4,c); } }
package 装饰模式;
import java.awt.Color; import java.awt.Graphics;
import 简单工厂模式.DrawRec;
public class Rec extends DrawRec implements Conpotent{ public void paint(Graphics g, int x, int y, int x1, int y1, Color c) { DrawRec rec = new DrawRec();
rec.draw(g, x, y, x1, y1, c); } }
package 装饰模式;
import java.awt.Color; import java.awt.Graphics;
import 界面.Jpanel;
public class Tri_Tri extends Decorator{ public Tri_Tri(Conpotent conpotent) { super(conpotent); } public void paint(Graphics g, int x1, int y1, int x2, int y2, Color c) { Tri tr = new Tri(); tr.draw(g,x1+(x2-x1)/4, y1+(y2-y1)/4, x2-(x2-x1)/4, y2-(y2-y1)/4,c ); } }
package 装饰模式;
import java.awt.Color; import java.awt.Graphics;
import 简单工厂模式.DrawRec; import 简单工厂模式.DrawTri;
public class Tri extends DrawTri implements Conpotent{ public void paint(Graphics g, int x, int y, int x1, int y1, Color c) { DrawTri tri = new DrawTri(); tri.draw(g, x, y, x1, y1, c); } }
桥接模式:
package 桥接模式;
import java.awt.BasicStroke; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D;
import 界面.Jpanel;