java 绘图板_非常值得学习的java 绘图板源代码
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(y1, 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(y1,
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(y1,
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(y1,
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(y1,
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(y1,
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(y1, 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(y1, 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);
}
}
原文:http://www.cnblogs.com/NetPig/p/3641992.html
總結
以上是生活随笔為你收集整理的java 绘图板_非常值得学习的java 绘图板源代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何入门独立开放游戏
- 下一篇: android 清华镜像,清华镜像网站下