package 界面;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
//import java.awt.F ont;
//import java.awt.Graphics;
//import java awtMouseInfo;
//import java awt.Point;
//import java awt.event.ActionEvent;
//import java.awt.event ActionListener;
//import java awt.event.MouseAdapter;
//import java.awt.event
//import java.awt.event.ActionEvent;
//import java.awt.event.MouseListener;
//import java.io.File;
//import javax swing BorderF actory;
//import javax swing.ImageIcon;
//import javax.swing
//import javax.swing.ImageIcon;
//import javax.swing.JFrame;
//import javax.swing.JPanel;
//
//import com.sun.glass.events.MouseEvent;
//
//import javax swing JColorChooser;
//import javax swing JF ileChooser,
//import javax swing JFrame;
//import javax swing JPanel1;
//import javax swing JTextArea;
//import javax swing JTextField;
//import javax swing.filechooser.F ileNameExtensionF ilter;import简单工厂模式*;import装饰模式*;import桥接模式*;
import java.io.File;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.filechooser.FileNameExtensionFilter;
import 桥接模式.BigPen;
import 桥接模式.Small;
import 桥接模式.Big;
import 桥接模式.smallpen;
import 桥接模式.size;
import 桥接模式.Pen;
import 简单工厂模式.Draw;
import 简单工厂模式.proFactory;
import 装饰模式.Conpotent;
import 装饰模式.Oval;
import 装饰模式.Oval_Oval;
import 装饰模式.Rec;
import 装饰模式.Rec_Rec;
import 装饰模式.Tri;
import 装饰模式.Tri_Tri;
public class MainFrame extends JFrame {
private JPanel downPanel = new JPanel();
private Color c = Color.black;
int x = 0;
int y = 0;
int x1 = 0;
int y1 = 0;
String name;
String name2;
int flag = 0;
Conpotent con;
Pen pen;
File[] selectedFiles = null;
int fileIndex = 0;
int width = 200;
int height = 200;
public MainFrame() {
initUI();
showFrame();
}
//初始化界面显示组件
private void initUI() {
final JTextField jtfGrap = new JTextField("图形");
final JTextField jtfModi = new JTextField("装饰");
final JTextField jtfStra = new JTextField("桥接 ");
final JButton jbtColo = new JButton("颜色");
final JButton jbtTria = new JButton("三角形");
final JButton jbtRoun = new JButton("圆形");
final JButton jbtRect = new JButton("矩形");
final JButton jbtClea = new JButton("清空");
final JButton jbtMod1 = new JButton("三角形");
final JButton jbtMod2 = new JButton("圆形");
final JButton jbtMod3 = new JButton("矩形");
final JButton jbtMod4 = new JButton("移动");
final JButton jbtStr1 = new JButton("粗红毛笔");
final JButton jbtStr2 = new JButton("粗绿毛笔");
final JButton jbtStr3 = new JButton("细红毛笔");
final JButton jbtStr4 = new JButton("细绿毛笔");
final JPanel jpPanel1 = new JPanel();
final JPanel jpPanel2 = new JPanel();
final JPanel jpPanel3 = new JPanel();
jbtColo.setBounds(115, 10, 90, 20);
jbtColo.setForeground(new Color(153, 217, 234));
jbtColo.setContentAreaFilled(false);
jbtColo.setFont(new Font("黑 体", Font.BOLD, 14));
jtfGrap.setBounds(15, 5, 40, 30);
jtfGrap.setFont(new Font("黑 体", Font.BOLD, 14));
jtfGrap.setBorder(null);
jtfGrap.setEditable(false);
jtfGrap.setOpaque(false);
jbtTria.setBounds(15, 35, 90, 40);
jbtTria.setForeground(new Color(153, 217, 234));
jbtTria.setContentAreaFilled(false);
jbtTria.setFont(new Font("黑 体", Font.BOLD, 14));
jbtRoun.setBounds(115, 35, 90, 40);
jbtRoun.setForeground(new Color(153, 217, 234));
jbtRoun.setContentAreaFilled(false);
jbtRoun.setFont(new Font("黑 体", Font.BOLD, 14));
jbtRect.setBounds(15, 85, 90, 40);
jbtRect.setForeground(new Color(153, 217, 234));
jbtRect.setContentAreaFilled(false);
jbtRect.setFont(new Font("黑 体", Font.BOLD, 14));
jtfModi.setBounds(15, 5, 40, 30);
jtfModi.setFont(new Font("黑 体", Font.BOLD, 14));
jtfModi.setBorder(null);
jtfModi.setEditable(false);
jtfModi.setOpaque(false);
jbtMod1.setBounds(15, 35, 90, 40);
jbtMod1.setForeground(new Color(153, 217, 234));
jbtMod1.setContentAreaFilled(false);
jbtMod1.setFont(new Font("黑体", Font.BOLD, 14));
jbtMod2.setBounds(115, 35, 90, 40);
jbtMod2.setForeground(new Color(153, 217, 234));
jbtMod2.setContentAreaFilled(false);
jbtMod2.setFont(new Font("黑体", Font.BOLD, 14));
jbtMod3.setBounds(15, 85, 90, 40);
jbtMod3.setForeground(new Color(153, 217, 234));
jbtMod3.setContentAreaFilled(false);
jbtMod3.setFont(new Font("黑体", Font.BOLD, 14));
jbtMod4.setBounds(115, 85, 90, 40);
jbtMod4.setForeground(new Color(153, 217, 234));
jbtMod4.setContentAreaFilled(false);
jbtMod4.setFont(new Font("黑体", Font.BOLD, 14));
jtfStra.setBounds(15, 5, 40, 30);
jtfStra.setFont(new Font("黑体", Font.BOLD, 14));
jtfStra.setBorder(null);
jtfStra.setEditable(false);
jtfStra.setOpaque(false);
jbtStr1.setBounds(15, 35, 90, 40);
jbtStr1.setForeground(new Color(153, 217, 234));
jbtStr1.setContentAreaFilled(false);
jbtStr1.setFont(new Font("黑 体", Font.BOLD, 14));
jbtStr2.setBounds(115, 35, 90, 40);
jbtStr2.setForeground(new Color(153, 217, 234));
jbtStr2.setContentAreaFilled(false);
jbtStr2.setFont(new Font("黑 体", Font.BOLD, 14));
jbtStr3.setBounds(115, 85, 90, 40);
jbtStr3.setForeground(new Color(153, 217, 234));
jbtStr3.setContentAreaFilled(false);
jbtStr3.setFont(new Font("黑 体", Font.BOLD, 14));
jbtStr4.setBounds(15, 85, 90, 40);
jbtStr4.setForeground(new Color(153, 217, 234));
jbtStr4.setContentAreaFilled(false);
jbtStr4.setFont(new Font("黑 体", Font.BOLD, 14));
jbtClea.setBounds(620, 10, 70, 20);
jbtClea.setForeground(new Color(153, 217, 234));
jbtClea.setContentAreaFilled(false);
jbtClea.setFont(new Font("黑 体", Font.BOLD, 14));
//监听器
jbtClea.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
downPanel.removeAll();
downPanel.add(jbtClea);
downPanel.update(downPanel.getGraphics());
}
});
//画图区域
downPanel.setBounds(260, 15, 700, 627);
downPanel.setBackground(Color.WHITE);
downPanel.setLayout(null);
downPanel.add(jbtClea);
jpPanel1.setBorder(BorderFactory.createLineBorder(getForeground()));
jpPanel1.setBounds(20, 15, 222, 142);
jpPanel1.setBackground(Color.WHITE);
jpPanel1.setLayout(null);
jpPanel1.add(jbtTria);
jpPanel1.add(jbtRoun);
jpPanel1.add(jbtRect);
jpPanel1.add(jbtColo);
jpPanel1.add(jtfGrap);
jpPanel2.setBorder(BorderFactory.createLineBorder(getForeground()));
jpPanel2.setBounds(20, 177, 222, 142);
jpPanel2.setBackground(Color.WHITE);
jpPanel2.setLayout(null);
jpPanel2.add(jbtMod1);
jpPanel2.add(jbtMod2);
jpPanel2.add(jbtMod3);
jpPanel2.add(jbtMod4);
jpPanel2.add(jtfModi);
jpPanel3.setBorder(BorderFactory.createLineBorder(getForeground()));
jpPanel3.setBounds(20, 339, 222, 142);
jpPanel3.setBackground(Color.WHITE);
jpPanel3.setLayout(null);
jpPanel3.add(jbtStr1);
jpPanel3.add(jbtStr2);
jpPanel3.add(jbtStr3);
jpPanel3.add(jbtStr4);
jpPanel3.add(jtfStra);
this.add(downPanel);
this.add(jpPanel1);
this.add(jpPanel2);
this.add(jpPanel3);
////
jbtRoun.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
name = "圆形";
}
});
//监听器
jbtRect.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
name = "矩形";
}
});
jbt
没有合适的资源?快使用搜索试试~ 我知道了~
设计模式+简单工厂模式+桥接模式+装饰者模式实现画板绘图功能
共73个文件
class:39个
java:24个
xml:6个
需积分: 36 9 下载量 58 浏览量
2022-08-05
12:53:01
上传
评论 7
收藏 59KB ZIP 举报
温馨提示
1.需求分析 该系统是一个画图程序,我们要用设计模式的思想来设计系统结构,然后实现基本图形的绘制功能。 1.1 设计模式要求 在软件的设计中请使用到三种以上设计模式。 1.2 画图基本要求 能实现基本图形的绘制功能,包括实现绘制直线、三角形和圆形,并有装饰;修改绘图笔颜色。 1.3 画图高级要求 实现图形的操作(如选取、移动、放大、缩小、删除、改变颜色、修变线形等)和持久化(利用文件或利用数据库)。
资源详情
资源评论
资源推荐
收起资源包目录
java设计模式绘图画板课程设计.zip (73个子文件)
java课程设计
bin
界面
MainFrame$11.class 829B
MainFrame.class 6KB
MainFrame$7.class 994B
MainFrame$5.class 1KB
MainFrame$12.class 827B
Jie.class 1KB
MainFrame$4.class 713B
Jpanel.class 711B
Jie$1.class 693B
MainFrame$3.class 709B
MainFrame$6.class 993B
MainFrame$10.class 827B
MainFrame$9.class 1KB
MainFrame$14.class 4KB
MainFrame$13.class 829B
MainFrame$2.class 709B
MainFrame$1.class 1KB
MainFrame$8.class 996B
桥接模式
Big.class 365B
MiddlePen.class 859B
Pen.class 493B
smallpen.class 856B
size.class 126B
Small.class 365B
BigPen.class 850B
Middle.class 374B
简单工厂模式
proFactory.class 756B
DrawOval.class 2KB
Draw.class 222B
DrawTri.class 1KB
DrawRec.class 1KB
装饰模式
Oval_Oval.class 758B
Rec_Rec.class 770B
Tri.class 636B
Decorator.class 659B
Oval.class 641B
Rec.class 636B
Conpotent.class 173B
Tri_Tri.class 749B
java课程设计.iml 597B
.settings
org.eclipse.jdt.core.prefs 642B
src
界面
Jie.java 1KB
MainFrame.java 13KB
Jpanel.java 489B
桥接模式
Pen.java 305B
Middle.java 165B
BigPen.java 352B
Big.java 167B
MiddlePen.java 373B
Small.java 157B
smallpen.java 314B
size.java 75B
简单工厂模式
Draw.java 280B
DrawOval.java 966B
DrawTri.java 793B
DrawRec.java 915B
proFactory.java 331B
装饰模式
Tri.java 336B
Tri_Tri.java 377B
Oval.java 343B
Oval_Oval.java 393B
Rec.java 306B
Rec_Rec.java 423B
Conpotent.java 177B
Decorator.java 357B
.idea
qaplug_profiles.xml 422B
misc.xml 374B
modules.xml 279B
encodings.xml 162B
workspace.xml 22KB
checkstyle-idea.xml 624B
.project 392B
.classpath 396B
共 73 条
- 1
乡下小哥编程
- 粉丝: 10w+
- 资源: 65
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0