实例介绍
【实例简介】
【实例截图】
【核心代码】
package minidrawpad; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.io.Serializable; //图形绘制类 用于绘制各种图形 //父类,基本图形单元,用到串行的接口,保存使用到 //公共的属性放到超类中,子类可以避免重复定义 /*类通过实现 java.io.Serializable 接口以启用其序列化功能。 未实现此接口的类将无法使其任何状态序列化或反序列化。 可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段, 仅用于标识可序列化的语义。*/ public class Drawing implements Serializable { int x1,x2,y1,y2; //定义坐标属性 int R,G,B; //定义色彩属性 float stroke ; //定义线条粗细的属性 int type; //定义字体属性 String s1; //定义字体的风格 String s2; //定义字体的风格 void draw(Graphics2D g2d ){}//定义绘图函数 } class Line extends Drawing//直线类 { void draw(Graphics2D g2d) { g2d.setPaint(new Color(R, G, B));// 为 Graphics2D 上下文设置 Paint 属性。 // 使用为 null 的 Paint 对象调用此方法对此 Graphics2D 的当前 Paint 属性没有任何影响。 g2d.setStroke(new BasicStroke(stroke, BasicStroke.CAP_ROUND, BasicStroke.JOIN_BEVEL)); // setStroke(Stroke s)为 Graphics2D 上下文设置 Stroke // BasicStroke 类定义针对图形图元轮廓呈现属性的一个基本集合 // BasicStroke.CAP_ROUND使用半径等于画笔宽度一半的圆形装饰结束未封闭的子路径和虚线线段 // BasicStroke.JOIN_BEVEL通过直线连接宽体轮廓的外角,将路径线段连接在一起。 g2d.drawLine(x1, y1, x2, y2);// 画直线 } } class Rect extends Drawing{//矩形类 void draw(Graphics2D g2d ){ g2d.setPaint(new Color(R,G,B)); g2d.setStroke(new BasicStroke(stroke)); g2d.drawRect(Math.min(x1, x2), Math.min(y2, y2), Math.abs(x1-x2), Math.abs(y1-y2)); } } class fillRect extends Drawing{//实心矩形类 void draw(Graphics2D g2d ){ g2d.setPaint(new Color(R,G,B)); g2d.setStroke(new BasicStroke(stroke)); g2d.fillRect(Math.min(x1, x2), Math.min(y2, y2), Math.abs(x1-x2), Math.abs(y1-y2)); } } class Oval extends Drawing{//椭圆类 void draw(Graphics2D g2d ){ g2d.setPaint(new Color(R,G,B)); g2d.setStroke(new BasicStroke(stroke)); g2d.drawOval(Math.min(x1, x2), Math.min(y2, y2), Math.abs(x1-x2), Math.abs(y1-y2)); } } class fillOval extends Drawing{//实心椭圆类 void draw(Graphics2D g2d ){ g2d.setPaint(new Color(R,G,B)); g2d.setStroke(new BasicStroke(stroke)); g2d.fillOval(Math.min(x1, x2), Math.min(y2, y2), Math.abs(x1-x2), Math.abs(y1-y2)); } } class Circle extends Drawing{//矩形类 void draw(Graphics2D g2d ){ g2d.setPaint(new Color(R,G,B)); g2d.setStroke(new BasicStroke(stroke)); g2d.drawOval(Math.min(x1, x2), Math.min(y2, y2), Math.max(Math.abs(x1-x2), Math.abs(y1-y2)), Math.max(Math.abs(x1-x2), Math.abs(y1-y2))); } } class fillCircle extends Drawing{//实心圆类 void draw(Graphics2D g2d ){ g2d.setPaint(new Color(R,G,B)); g2d.setStroke(new BasicStroke(stroke)); g2d.fillOval(Math.min(x1, x2), Math.min(y2, y2), Math.max(Math.abs(x1-x2), Math.abs(y1-y2)), Math.max(Math.abs(x1-x2), Math.abs(y1-y2))); } } class RoundRect extends Drawing{//圆角矩形类 void draw(Graphics2D g2d ){ g2d.setPaint(new Color(R,G,B)); g2d.setStroke(new BasicStroke(stroke)); g2d.drawRoundRect(Math.min(x1, x2), Math.min(y2, y2),Math.abs(x1-x2), Math.abs(y1-y2),50,35); } } class fillRoundRect extends Drawing{//实心圆角矩形类 void draw(Graphics2D g2d ){ g2d.setPaint(new Color(R,G,B)); g2d.setStroke(new BasicStroke(stroke)); g2d.fillRoundRect(Math.min(x1, x2), Math.min(y2, y2),Math.abs(x1-x2), Math.abs(y1-y2),50,35); } } class Pencil extends Drawing{//随笔画类 void draw(Graphics2D g2d ){ g2d.setPaint(new Color(R,G,B)); g2d.setStroke(new BasicStroke(stroke,BasicStroke.CAP_ROUND,BasicStroke.JOIN_BEVEL)); g2d.drawLine(x1, y1,x2, y2); } } class Rubber extends Drawing{//橡皮擦类 void draw(Graphics2D g2d ){ g2d.setPaint(new Color(255,255,255));//白色 g2d.setStroke(new BasicStroke(stroke 4,BasicStroke.CAP_ROUND,BasicStroke.JOIN_BEVEL)); g2d.drawLine(x1, y1,x2, y2); } } class Word extends Drawing{//输入文字类 void draw(Graphics2D g2d ){ g2d.setPaint(new Color(R,G,B)); g2d.setFont(new Font(s2,x2 y2,((int)stroke)*18));//设置字体 if(s1 != null) g2d.drawString( s1, x1,y1); } }
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论