《零基礎學Java》
-
繪制幾何圖形
Java可以分別使用 Graphics 和 Graphics2D 繪制圖形,Graphics類 使用不同的方法繪制不同的圖形(drawLine()方法可f以繪制線、drawRect()方法用于繪制矩形、drawOval()方法用于繪制橢圓形),
Graphics類常用的圖形繪制方法:


Graphics2D類 繼承 Graphics類,它包含 Graphics類 的繪圖方法并增加了更強大的功能,在創建繪圖類時推薦使用該類,Graphics2D類可以分別使用不同的類來表示不同的形狀,如Line2D、Rcctangle2D等,
繪制指定形狀的圖形,先需要創建并初始化該圖形類的物件,這些圖形類必須是Shape介面的實作類,然后使用Graphics2D類的drav()方繪制該圖形物件或者使用fill()方法填充該圖形物件,
drav()、fill()語法:
drav(Shapae form);
fill(Shapae form); //填充
/**
* form是指實作Shape介面的物件.java.awt.gcom包中提供了如下一些常用的圖形類,這些圖形類都實作了Shape介面;
* Arc2D:存盤所有2D弧度的物件的抽象超類,其中2D弧度由表單矩形、起始角度、角跨越(弧的長度)和閉合型別(OPEN、CHORD或PIE)定義.
* CubicCurve2D:定義(x,y)坐標空間內的三次引數曲線段,
* Ellipse2D:描述表單矩形定義的橢圓,
* Line2D:(x,y)坐標空間中的線段,
* Path2D:提供一個表示任意幾何形狀路徑的簡單而又靈活的形狀,
* QuadCurve2D:定義(x,y)坐標空間內的二次引數曲線段,
* Rectangle2D:描述通過位置(x,y)和尺寸(w,x,h)定義的矩形,
* RoundRectangle2D:定義一個矩形,該矩形具有由位置(x,y)、尺寸(w,x,h)以及圓角弧的寬度和高度定義的圓角,
*/
繪制幾何圖形 實體:
import javax.swing.*;
import java.awt.*;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;
public class Demo extends JFrame {
public Demo(){
super();
init();
}
public void init(){
this.setSize(500,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("繪制幾何圖形");
MyCabvas c = new MyCabvas(); //創建一個畫布類的物件
add(c);
}
public static void main(String[] args) {
new Demo().setVisible(true);
}
private class MyCabvas extends Canvas{ //創建畫布類
@Override
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D)g; //新繪圖類
g2.drawOval(5,5,100,100); //畫 圓形
g2.drawRect(15,15,80,80); //畫 矩形
g2.fillRect(15,15,80,80); //畫 矩形 填充式
// g2.drawArc(320,25,100,50,270,200); //畫 弧形 (startAngle:開始角度、arcAngle:跨越角度)
g2.fillArc(320,25,100,50,270,200); //畫 弧形 填充式 (startAngle:開始角度、arcAngle:跨越角度)
g2.drawLine(5,120,100,120); //畫 直線 橫
g2.drawLine(50,120,50,200); //畫 直線 豎
// g2.drawRoundRect(120,120,100,50,10,10); //畫 圓角矩形 (arcWidth:水平直徑、arcHeight:弧度直徑)
g2.fillRoundRect(120,120,100,50,10,10); //畫 圓角矩形 填充式 (arcWidth:水平直徑、arcHeight:弧度直徑)
int x[] = {250,300,250,300};
int y[] = {130,130,200,200};
g2.drawPolygon(x,y,4); //畫 多邊形 (nPonts:有多少個點)
g2.fillPolygon(x,y,4); //畫 多邊形 填充式 (nPonts:有多少個點)
// g2.drawPolyline(x,y,4); //畫 多邊線
/*
圖形物件
*/
Shape shape1 = new Rectangle2D.Double(110,5,100,100); //矩形圖形物件
// g2.draw(shape1); //畫 shape1 這個圖形
g2.fill(shape1); //畫 shape1 這個圖形 填充式
Shape shape2 = new Ellipse2D.Double(220,15,80,80); //圓形圖形物件
g2.draw(shape2);
}
}
}
繪制幾何圖形 實體 輸出結果:

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/479211.html
標籤:Java
下一篇:OutputStream詳解
