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);
}
}
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的java 画图板源代码_非常值得学习的java 绘图板源代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java file源码_java Fil
- 下一篇: java中var是什么意思_js中的va