日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 绘图板_非常值得学习的java 绘图板源代码

發(fā)布時間:2023/12/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 绘图板_非常值得学习的java 绘图板源代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

package minidrawpad;

import java.awt.BasicStroke;

import

java.awt.Color;

import java.awt.Font;

import java.awt.Graphics2D;

import java.io.Serializable;

//圖形繪制類 用于繪制各種圖形

//父類,基本圖形單元,用到串行的接口,保存使用到

//公共的屬性放到超類中,子類可以避免重復定義

/*類通過實現(xiàn)

java.io.Serializable 接口以啟用其序列化功能。

未實現(xiàn)此接口的類將無法使其任何狀態(tài)序列化或反序列化。

可序列化類的所有子類型本身都是可序列化的。序列化接口沒有方法或字段,

僅用于標識可序列化的語義。*/

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 ){}//定義繪圖函數(shù)

}

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 類定義針對圖形圖元輪廓呈現(xiàn)屬性的一個基本集合

//

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 绘图板源代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。