JavaTM 2 Platform
Standard Ed. 6

java.awt
類別 Graphics

java.lang.Object
  繼承者 java.awt.Graphics
直接已知子類別:
DebugGraphics, Graphics2D

public abstract class Graphics
extends Object

Graphics 類別是所有圖形上下文的抽象基礎類別,允許應用程序在元件(已經在各種設備上實作)以及閉屏圖像上進行繪製。

Graphics 物件封裝了 Java 支持的基本呈現操作所需的狀態資訊。此狀態資訊包括以下屬性:

坐標是無限細分的,並且位於輸出設備的像素之間。繪製圖形輪廓的操作是通過使用像素大小的畫筆遍歷像素間無限細分路徑的操作,畫筆從路徑上的錨點向下和向右繪製。填充圖形的操作是填充圖形內部區域無限細分路徑操作。呈現水平文本的操作是呈現字元字形完全位於基線坐標之上的上升部分。

圖形畫筆從要遍歷的路徑向下和向右繪製。其含義如下:

所有作為此 Graphics 物件方法的參數而出現的坐標,都是相對於調用該方法前的此 Graphics 物件轉換原點的。

所有呈現操作僅修改當前剪貼區所限定區域內的像素,此剪貼區是由使用者空間中的 Shape 指定的,並通過使用 Graphics 物件的程序來控制。此使用者剪貼區 被轉換到設備空間中,並與設備剪貼區 組合,後者是通過視窗可見性和設備範圍定義的。使用者剪貼區和設備剪貼區的組合定義復合剪貼區,復合剪貼區確定最終的剪貼區域。使用者剪貼區不能由呈現系統修改,以反映得到的復合剪貼區。使用者剪貼區只能通過 setClipclipRect 方法更改。所有的繪製或寫入都以當前的顏色、當前繪圖網要和當前字體完成。

從以下版本開始:
JDK1.0
另請參見:
Component, clipRect(int, int, int, int), setColor(java.awt.Color), setPaintMode(), setXORMode(java.awt.Color), setFont(java.awt.Font)

建構子摘要
protected Graphics()
          建構一個新的 Graphics 物件。
 
方法摘要
abstract  void clearRect(int x, int y, int width, int height)
          通過使用當前繪圖表面的背景色進行填充來清除指定的矩形。
abstract  void clipRect(int x, int y, int width, int height)
          將當前剪貼區與指定的矩形相交。
abstract  void copyArea(int x, int y, int width, int height, int dx, int dy)
          將元件的區域複製到由 dxdy 指定的距離處。
abstract  Graphics create()
          創建一個新的 Graphics 物件,它是此 Graphics 物件的副本。
 Graphics create(int x, int y, int width, int height)
          基於此 Graphics 物件創建一個新的 Graphics 物件,但是使用新的轉換和剪貼區域。
abstract  void dispose()
          釋放此圖形的上下文以及它使用的所有系統資源。
 void draw3DRect(int x, int y, int width, int height, boolean raised)
          繪製指定矩形的 3-D 高亮顯示邊框。
abstract  void drawArc(int x, int y, int width, int height, int startAngle, int arcAngle)
          繪製一個覆寫指定矩形的圓弧或橢圓弧邊框。
 void drawBytes(byte[] data, int offset, int length, int x, int y)
          使用此圖形上下文的當前字體和顏色繪製由指定 byte 陣列給定的文本。
 void drawChars(char[] data, int offset, int length, int x, int y)
          使用此圖形上下文的當前字體和顏色繪製由指定字元陣列給定的文本。
abstract  boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer)
          繪製指定圖像中當前可用的圖像。
abstract  boolean drawImage(Image img, int x, int y, ImageObserver observer)
          繪製指定圖像中當前可用的圖像。
abstract  boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer)
          繪製指定圖像中已縮放到適合指定矩形內部的圖像。
abstract  boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer)
          繪製指定圖像中已縮放到適合指定矩形內部的圖像。
abstract  boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, Color bgcolor, ImageObserver observer)
          繪製當前可用的指定圖像的指定區域,動態地縮放圖像使其符合目標繪製表面的指定區域。
abstract  boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer)
          繪製當前可用的指定圖像的指定區域,動態地縮放圖像使其符合目標繪製表面的指定區域。
abstract  void drawLine(int x1, int y1, int x2, int y2)
          在此圖形上下文的坐標系中,使用當前顏色在點 (x1, y1)(x2, y2) 之間畫一條線。
abstract  void drawOval(int x, int y, int width, int height)
          繪製橢圓的邊框。
abstract  void drawPolygon(int[] xPoints, int[] yPoints, int nPoints)
          繪製一個由 xy 坐標陣列定義的閉合多邊形。
 void drawPolygon(Polygon p)
          繪製由指定的 Polygon 物件定義的多邊形邊框。
abstract  void drawPolyline(int[] xPoints, int[] yPoints, int nPoints)
          繪製由 xy 坐標陣列定義的一系列連接線。
 void drawRect(int x, int y, int width, int height)
          繪製指定矩形的邊框。
abstract  void drawRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
          用此圖形上下文的當前顏色繪製圓角矩形的邊框。
abstract  void drawString(AttributedCharacterIterator iterator, int x, int y)
          依據 TextAttribute 類別的規範應用指定迭代器的屬性,呈現迭代器的文本。
abstract  void drawString(String str, int x, int y)
          使用此圖形上下文的當前字體和顏色繪製由指定 string 給定的文本。
 void fill3DRect(int x, int y, int width, int height, boolean raised)
          繪製一個用當前顏色填充的 3-D 高亮顯示矩形。
abstract  void fillArc(int x, int y, int width, int height, int startAngle, int arcAngle)
          填充覆寫指定矩形的圓弧或橢圓弧。
abstract  void fillOval(int x, int y, int width, int height)
          使用當前顏色填充外接指定矩形框的橢圓。
abstract  void fillPolygon(int[] xPoints, int[] yPoints, int nPoints)
          填充由 xy 坐標陣列定義的閉合多邊形。
 void fillPolygon(Polygon p)
          用圖形上下文的當前顏色填充指定 Polygon 物件定義的多邊形。
abstract  void fillRect(int x, int y, int width, int height)
          填充指定的矩形。
abstract  void fillRoundRect(int x, int y, int width, int height, int arcWidth, int arcHeight)
          用當前顏色填充指定的圓角矩形。
 void finalize()
          一旦不再參考此圖形上下文就釋放它。
abstract  Shape getClip()
          獲取當前剪貼區域。
abstract  Rectangle getClipBounds()
          返回當前剪貼區域的邊界矩形。
 Rectangle getClipBounds(Rectangle r)
          返回當前剪貼區域的邊界矩形。
 Rectangle getClipRect()
          已過時。 從 JDK version 1.1 開始,由 getClipBounds() 取代。
abstract  Color getColor()
          獲取此圖形上下文的當前顏色。
abstract  Font getFont()
          獲取當前字體。
 FontMetrics getFontMetrics()
          獲取當前字體的字體規格。
abstract  FontMetrics getFontMetrics(Font f)
          獲取指定字體的字體規格。
 boolean hitClip(int x, int y, int width, int height)
          如果指定的矩形區域與當前的剪貼區域相交,則返回 true。
abstract  void setClip(int x, int y, int width, int height)
          將當前剪貼區設置為由給定坐標指定的矩形。
abstract  void setClip(Shape clip)
          將當前剪貼區域設置為任意的剪貼形狀。
abstract  void setColor(Color c)
          將此圖形上下文的當前顏色設置為指定顏色。
abstract  void setFont(Font font)
          將此圖形上下文的字體設置為指定字體。
abstract  void setPaintMode()
          設置將此圖形上下文的繪圖網要,以便通過此圖形上下文中的當前顏色來覆寫目標。
abstract  void setXORMode(Color c1)
          將此圖形上下文的繪圖網要設置為在此圖形上下文的當前顏色和新的指定顏色之間交替。
 String toString()
          返回表示此 Graphics 物件值的 String 物件。
abstract  void translate(int x, int y)
          將圖形上下文的原點平移到當前坐標系中的點 (xy)。
 
從類別 java.lang.Object 繼承的方法
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

建構子詳細資訊

Graphics

protected Graphics()
建構一個新的 Graphics 物件。此建構子是用於圖形上下文的預設建構子。

因為 Graphics 是一個抽象類別,所以應用程序不能直接調用此建構子。圖形上下文從其他圖形上下文獲取,或者通過在元件上調用 getGraphics 來創建。

另請參見:
create(), Component.getGraphics()
方法詳細資訊

create

public abstract Graphics create()
創建一個新的 Graphics 物件,它是此 Graphics 物件的副本。

返回:
新的圖形上下文,它是此圖形上下文的副本。

create

public Graphics create(int x,
                       int y,
                       int width,
                       int height)
基於此 Graphics 物件創建一個新的 Graphics 物件,但是使用新的轉換和剪貼區域。新 Graphics 物件的原點平移到指定點 (xy)。其剪貼區域由原始剪貼區域和指定矩形的交集確定。各個參數均在原始 Graphics 物件的坐標系內進行解釋。新圖形上下文除以下兩方面之外,其他與原始圖形上下文相同:

參數:
x - x 坐標。
y - y 坐標。
width - 剪貼矩形的寬度。
height - 剪貼矩形的高度。
返回:
新的圖形上下文。
另請參見:
translate(int, int), clipRect(int, int, int, int)

translate

public abstract void translate(int x,
                               int y)
將圖形上下文的原點平移到當前坐標系中的點 (xy)。修改此圖形上下文,使其新的原點對應於此圖形上下文原坐標系中的點 (xy)。在此圖形上下文上執行的後續呈現操作所用的所有坐標均相對於這個新原點。

參數:
x - x 坐標。
y - y 坐標。

getColor

public abstract Color getColor()
獲取此圖形上下文的當前顏色。

返回:
此圖形上下文的當前顏色。
另請參見:
Color, setColor(Color)

setColor

public abstract void setColor(Color c)
將此圖形上下文的當前顏色設置為指定顏色。使用此圖形上下文的所有後續圖形操作均使用這個指定的顏色。

參數:
c - 新的呈現顏色。
另請參見:
Color, getColor()

setPaintMode

public abstract void setPaintMode()
設置將此圖形上下文的繪圖網要,以便通過此圖形上下文中的當前顏色來覆寫目標。此方法將邏輯像素操作函數設置為繪圖網要或覆寫網要。所有後續呈現操作將使用當前顏色覆寫目標。


setXORMode

public abstract void setXORMode(Color c1)
將此圖形上下文的繪圖網要設置為在此圖形上下文的當前顏色和新的指定顏色之間交替。這指定了邏輯像素操作以 XOR 網要執行,在此網要中像素在當前顏色和指定的 XOR 顏色之間進行交替。

當執行繪製操作時,當前顏色的像素更改為指定的顏色,反之亦然。

這兩種顏色以外的像素以不可預測但可逆的方式更改;如果相同的圖形被繪製兩次,則所有像素恢復到原始值。

參數:
c1 - XOR 交替顏色

getFont

public abstract Font getFont()
獲取當前字體。

返回:
此圖形上下文的當前字體。
另請參見:
Font, setFont(Font)

setFont

public abstract void setFont(Font font)
將此圖形上下文的字體設置為指定字體。使用此圖形上下文的所有後續文本操作均使用此字體。忽略 null 參數。

參數:
font - 字體。
另請參見:
getFont(), drawString(java.lang.String, int, int), drawBytes(byte[], int, int, int, int), drawChars(char[], int, int, int, int)

getFontMetrics

public FontMetrics getFontMetrics()
獲取當前字體的字體規格。

返回:
此圖形上下文當前字體的字體規格。
另請參見:
getFont(), FontMetrics, getFontMetrics(Font)

getFontMetrics

public abstract FontMetrics getFontMetrics(Font f)
獲取指定字體的字體規格。

參數:
f - 指定的字體
返回:
指定字體的字體規格。
另請參見:
getFont(), FontMetrics, getFontMetrics()

getClipBounds

public abstract Rectangle getClipBounds()
返回當前剪貼區域的邊界矩形。此方法參考使用者剪貼區,使用者剪貼區與設備邊界和視窗可見性關聯的剪貼區無關。如果以前未設置剪貼區,或者已使用 setClip(null) 清除了剪貼區,則此方法返回 null。該矩形內的坐標相對於此圖形上下文的坐標系原點。

返回:
當前剪貼區域的邊界矩形;如果未設置剪貼區,則返回 null
從以下版本開始:
JDK1.1
另請參見:
getClip(), clipRect(int, int, int, int), setClip(int, int, int, int), setClip(Shape)

clipRect

public abstract void clipRect(int x,
                              int y,
                              int width,
                              int height)
將當前剪貼區與指定的矩形相交。得到的剪貼區域是當前剪貼區域和指定矩形的交集。如果因為從未設置過剪貼區,或者已使用 setClip(null) 清除了剪貼區而導致沒有當前剪貼區域,那麼指定的矩形將成為新的剪貼區。此方法設置使用者剪貼區,使用者剪貼區與設備邊界和視窗可見性所關聯的剪貼區無關。此方法只能用來縮小當前剪貼區。要擴大當前剪貼區,請使用 setClip 方法。呈現操作對剪貼區域的外部沒有影響。

參數:
x - 要與剪貼區相交的矩形的 x 坐標
y - 要與剪貼區相交的矩形的 y 坐標
width - 要與剪貼區相交的矩形的寬度
height - 要與剪貼區相交的矩形的高度
另請參見:
setClip(int, int, int, int), setClip(Shape)

setClip

public abstract void setClip(int x,
                             int y,
                             int width,
                             int height)
將當前剪貼區設置為由給定坐標指定的矩形。此方法設置使用者剪貼區,使用者剪貼區與設備邊界和視窗可見性關聯的剪貼區無關。呈現操作對剪貼區域的外部沒有影響。

參數:
x - 新剪貼區矩形的 x 坐標。
y - 新剪貼區矩形的 y 坐標。
width - 新剪貼區矩形的寬度。
height - 新剪貼區矩形的高度。
從以下版本開始:
JDK1.1
另請參見:
clipRect(int, int, int, int), setClip(Shape), getClip()

getClip

public abstract Shape getClip()
獲取當前剪貼區域。此方法返回使用者剪貼區,使用者剪貼區與設備邊界和視窗可見性關聯的剪貼區無關。如果以前未設置剪貼區,或者已使用 setClip(null) 清除了剪貼區,那麼此方法返回 null

返回:
表示當前剪貼區域的 Shape 物件;如果未設置剪貼區,則返回 null
從以下版本開始:
JDK1.1
另請參見:
getClipBounds(), clipRect(int, int, int, int), setClip(int, int, int, int), setClip(Shape)

setClip

public abstract void setClip(Shape clip)
將當前剪貼區域設置為任意的剪貼形狀。並非所有實作 Shape 介面的物件都能用於設置剪貼區。只保證支持通過 getClip 方法和 Rectangle 物件獲取的 Shape 物件。此方法設置使用者剪貼區,使用者剪貼區與設備邊界和視窗可見性關聯的剪貼區無關。

參數:
clip - 用來設置剪貼形狀的 Shape
從以下版本開始:
JDK1.1
另請參見:
getClip(), clipRect(int, int, int, int), setClip(int, int, int, int)

copyArea

public abstract void copyArea(int x,
                              int y,
                              int width,
                              int height,
                              int dx,
                              int dy)
將元件的區域複製到由 dxdy 指定的距離處。此方法從 xy 指定的點向下和向右複製。要將元件的區域向左或向上複製,請指定負的 dxdy 值。如果源矩形的一部分位於元件邊界的外部,或者被另一個視窗或元件遮掩,那麼 copyArea 將無法複製相關的像素。通過調用元件的 paint 方法可刷新被忽略的區域。

參數:
x - 源矩形的 x 坐標。
y - 源矩形的 y 坐標。
width - 源矩形的寬度。
height - 源矩形的高度。
dx - 複製像素的水平距離。
dy - 複製像素的垂直距離。

drawLine

public abstract void drawLine(int x1,
                              int y1,
                              int x2,
                              int y2)
在此圖形上下文的坐標系中,使用當前顏色在點 (x1, y1)(x2, y2) 之間畫一條線。

參數:
x1 - 第一個點的 x 坐標。
y1 - 第一個點的 y 坐標。
x2 - 第二個點的 x 坐標。
y2 - 第二個點的 y 坐標。

fillRect

public abstract void fillRect(int x,
                              int y,
                              int width,
                              int height)
填充指定的矩形。該矩形左邊緣和右邊緣分別位於 xx + width - 1。上邊緣和下邊緣分別位於 yy + height - 1。得到的矩形覆寫 width 像素寬乘以 height 像素高的區域。使用圖形上下文的當前顏色填充該矩形。

參數:
x - 要填充矩形的 x 坐標。
y - 要填充矩形的 y 坐標。
width - 要填充矩形的寬度。
height - 要填充矩形的高度。
另請參見:
clearRect(int, int, int, int), drawRect(int, int, int, int)

drawRect

public void drawRect(int x,
                     int y,
                     int width,
                     int height)
繪製指定矩形的邊框。矩形的左邊緣和右邊緣分別位於 xx + width。上邊緣和下邊緣分別位於 yy + height。使用圖形上下文的當前顏色繪製該矩形。

參數:
x - 要繪製矩形的 x 坐標。
y - 要繪製矩形的 y 坐標。
width - 要繪製矩形的寬度。
height - 要繪製矩形的高度。
另請參見:
fillRect(int, int, int, int), clearRect(int, int, int, int)

clearRect

public abstract void clearRect(int x,
                               int y,
                               int width,
                               int height)
通過使用當前繪圖表面的背景色進行填充來清除指定的矩形。此操作不使用當前繪圖網要。

從 Java 1.1 開始,離屏圖像的背景色可能與系統相關。應用程序應該使用 setColor,然後使用 fillRect,以確保離屏圖像被清除為指定顏色。

參數:
x - 要清除矩形的 x 坐標。
y - 要清除矩形的 y 坐標。
width - 要清除矩形的寬度。
height - 要清除矩形的高度。
另請參見:
fillRect(int, int, int, int), drawRect(int, int, int, int), setColor(java.awt.Color), setPaintMode(), setXORMode(java.awt.Color)

drawRoundRect

public abstract void drawRoundRect(int x,
                                   int y,
                                   int width,
                                   int height,
                                   int arcWidth,
                                   int arcHeight)
用此圖形上下文的當前顏色繪製圓角矩形的邊框。矩形的左邊緣和右邊緣分別位於 xx + width。矩形的上邊緣和下邊緣分別位於 yy + height

參數:
x - 要繪製矩形的 x 坐標。
y - 要繪製矩形的 y 坐標。
width - 要繪製矩形的寬度。
height - 要繪製矩形的高度。
arcWidth - 4 個角弧度的水平直徑。
arcHeight - 4 個角弧度的垂直直徑。
另請參見:
fillRoundRect(int, int, int, int, int, int)

fillRoundRect

public abstract void fillRoundRect(int x,
                                   int y,
                                   int width,
                                   int height,
                                   int arcWidth,
                                   int arcHeight)
用當前顏色填充指定的圓角矩形。矩形的左邊緣和右邊緣分別位於 xx + width - 1。矩形的上邊緣和下邊緣分別位於 yy + height - 1

參數:
x - 要填充矩形的 x 坐標。
y - 要填充矩形的 y 坐標。
width - 要填充矩形的寬度。
height - 要填充矩形的高度。
arcWidth - 4 個角弧度的水平直徑。
arcHeight - 4 個角弧度的垂直直徑。
另請參見:
drawRoundRect(int, int, int, int, int, int)

draw3DRect

public void draw3DRect(int x,
                       int y,
                       int width,
                       int height,
                       boolean raised)
繪製指定矩形的 3-D 高亮顯示邊框。矩形的邊是高亮顯示的,以至於從左上角看呈斜面並加亮。

高亮顯示效果所用的顏色根據當前顏色確定。得到的矩形覆寫 width + 1 像素寬乘以 height + 1 像素高的區域。

參數:
x - 要繪製矩形的 x 坐標。
y - 要繪製矩形的 y 坐標。
width - 要繪製矩形的寬度。
height - 要繪製矩形的高度。
raised - 一個用於確定矩形是凸出平面顯示還是凹入平面顯示的 boolean 值。
另請參見:
fill3DRect(int, int, int, int, boolean)

fill3DRect

public void fill3DRect(int x,
                       int y,
                       int width,
                       int height,
                       boolean raised)
繪製一個用當前顏色填充的 3-D 高亮顯示矩形。矩形的邊是高亮顯示的,以至於從左上角看呈斜面並加亮。高亮顯示效果所用的顏色根據當前顏色確定。

參數:
x - 要填充矩形的 x 坐標。
y - 要填充矩形的 y 坐標。
width - 要填充矩形的寬度。
height - 要填充矩形的高度。
raised - 一個用於確定矩形是凸出平面顯示還是凹入平面顯示的 boolean 值。
另請參見:
draw3DRect(int, int, int, int, boolean)

drawOval

public abstract void drawOval(int x,
                              int y,
                              int width,
                              int height)
繪製橢圓的邊框。得到一個圓或橢圓,它剛好能放入由 xywidthheight 參數指定的矩形中。

橢圓覆寫區域的寬度為 width + 1 像素,高度為 height + 1 像素。

參數:
x - 要繪製橢圓的左上角的 x 坐標。
y - 要繪製橢圓的左上角的 y 坐標。
width - 要繪製橢圓的寬度。
height - 要繪製橢圓的高度。
另請參見:
fillOval(int, int, int, int)

fillOval

public abstract void fillOval(int x,
                              int y,
                              int width,
                              int height)
使用當前顏色填充外接指定矩形框的橢圓。

參數:
x - 要填充橢圓的左上角的 x 坐標。
y - 要填充橢圓的左上角的 y 坐標。
width - 要填充橢圓的寬度。
height - 要填充橢圓的高度。
另請參見:
drawOval(int, int, int, int)

drawArc

public abstract void drawArc(int x,
                             int y,
                             int width,
                             int height,
                             int startAngle,
                             int arcAngle)
繪製一個覆寫指定矩形的圓弧或橢圓弧邊框。

得到的弧從 startAngle 開始跨越 arcAngle 度,並使用當前顏色。對角度的解釋如下:0 度角位於 3 點鐘位置。正值指示逆時針旋轉,負值指示順時針旋轉。

弧的中心是矩形的中心,此矩形的原點為 (xy),大小由 widthheight 參數指定。

得到的弧覆寫 width + 1 像素寬乘以 height + 1 像素高的區域。

角度是相對於外接矩形的非正方形區域指定的,45 度角始終落在從橢圓中心到外接矩形右上角的連線上。因此,如果外接矩形在一個軸上遠遠長於另一個軸,則弧段的起點和結束點的角度將沿邊框長軸發生更大的偏斜。

參數:
x - 要繪製弧的左上角的 x 坐標。
y - 要繪製弧的左上角的 y 坐標。
width - 要繪製弧的寬度。
height - 要繪製弧的高度。
startAngle - 開始角度。
arcAngle - 相對於開始角度而言,弧跨越的角度。
另請參見:
fillArc(int, int, int, int, int, int)

fillArc

public abstract void fillArc(int x,
                             int y,
                             int width,
                             int height,
                             int startAngle,
                             int arcAngle)
填充覆寫指定矩形的圓弧或橢圓弧。

得到的弧從 startAngle 開始跨越 arcAngle 度。對角度的解釋如下:0 度角位於 3 點鐘位置。正值指示逆時針旋轉,負值指示順時針旋轉。

弧的中心是矩形的中心,此矩形的原點為 (xy),大小由 widthheight 參數指定。

得到的弧覆寫 width + 1 像素寬乘以 height + 1 像素高的區域。

角度是相對於外接矩形的非正方形區域指定的,45 度角始終落在從橢圓中心到外接矩形右上角的連線上。因此,如果外接矩形在一個軸上遠遠長於另一個軸,則弧段的起點和結束點的角度將沿邊框長軸發生更大的偏斜。

參數:
x - 要填充弧的左上角的 x 坐標。
y - 要填充弧的左上角的 y 坐標。
width - 要填充弧的寬度。
height - 要填充弧的高度。
startAngle - 開始角度。
arcAngle - 相對於開始角度而言,弧跨越的角度。
另請參見:
drawArc(int, int, int, int, int, int)

drawPolyline

public abstract void drawPolyline(int[] xPoints,
                                  int[] yPoints,
                                  int nPoints)
繪製由 xy 坐標陣列定義的一系列連接線。每對 (xy) 坐標定義一個點。如果第一個點和最後一個點不同,則圖形不是閉合的。

參數:
xPoints - x 點陣列
yPoints - y 點陣列
nPoints - 點的總數
從以下版本開始:
JDK1.1
另請參見:
drawPolygon(int[], int[], int)

drawPolygon

public abstract void drawPolygon(int[] xPoints,
                                 int[] yPoints,
                                 int nPoints)
繪製一個由 xy 坐標陣列定義的閉合多邊形。每對 (xy) 坐標定義一個點。

此方法繪製由 nPoint 個線段定義的多邊形,其中前 nPoint - 1 個線段是 1 ≤ i ≤ nPoints 時從 (xPoints[i - 1], yPoints[i - 1])(xPoints[i], yPoints[i]) 的線段。如果最後一個點和第一個點不同,則圖形將在這兩點間繪製一條線段來自動閉合。

參數:
xPoints - x 坐標陣列。
yPoints - y 坐標陣列。
nPoints - 點的總數。
另請參見:
fillPolygon(int[], int[], int), drawPolyline(int[], int[], int)

drawPolygon

public void drawPolygon(Polygon p)
繪製由指定的 Polygon 物件定義的多邊形邊框。

參數:
p - 要繪製的多邊形。
另請參見:
fillPolygon(int[], int[], int), drawPolyline(int[], int[], int)

fillPolygon

public abstract void fillPolygon(int[] xPoints,
                                 int[] yPoints,
                                 int nPoints)
填充由 xy 坐標陣列定義的閉合多邊形。

此方法繪製由 nPoint 個線段定義的多邊形,其中前 nPoint - 1 個線段是 1 ≤ i ≤  時從 (xPoints[i - 1], yPoints[i - 1])(xPoints[i], yPoints[i]) 的線段。如果最後一個點和第一個點不同,則圖形會通過在這兩點間繪製一條線段來自動閉合。

多邊形內部的區域使用奇偶填充規則定義,此規則也稱為交替填充規則。

參數:
xPoints - x 坐標陣列。
yPoints - y 坐標陣列。
nPoints - 點的總數。
另請參見:
drawPolygon(int[], int[], int)

fillPolygon

public void fillPolygon(Polygon p)
用圖形上下文的當前顏色填充指定 Polygon 物件定義的多邊形。

多邊形內部的區域使用奇偶填充規則定義,此規則也稱為交替填充規則。

參數:
p - 要填充的多邊形。
另請參見:
drawPolygon(int[], int[], int)

drawString

public abstract void drawString(String str,
                                int x,
                                int y)
使用此圖形上下文的當前字體和顏色繪製由指定 string 給定的文本。最左側字元的基線位於此圖形上下文坐標系的 (xy) 位置處。

參數:
str - 要繪製的 string。
x - x 坐標。
y - y 坐標。
拋出:
NullPointerException - 如果 strnull
另請參見:
drawBytes(byte[], int, int, int, int), drawChars(char[], int, int, int, int)

drawString

public abstract void drawString(AttributedCharacterIterator iterator,
                                int x,
                                int y)
依據 TextAttribute 類別的規範應用指定迭代器的屬性,呈現迭代器的文本。

最左側字元的基線位於此圖形上下文坐標系的 (xy) 位置處。

參數:
iterator - 要繪製其文本的迭代器
x - x 坐標。
y - y 坐標。
拋出:
NullPointerException - 如果 iteratornull
另請參見:
drawBytes(byte[], int, int, int, int), drawChars(char[], int, int, int, int)

drawChars

public void drawChars(char[] data,
                      int offset,
                      int length,
                      int x,
                      int y)
使用此圖形上下文的當前字體和顏色繪製由指定字元陣列給定的文本。首字元的基線位於此圖形上下文坐標系的 (xy) 位置處。

參數:
data - 要繪製的字元陣列
offset - 資料的初始偏移量
length - 要繪製的字元數
x - 文本基線的 x 坐標
y - 文本基線的 y 坐標
拋出:
NullPointerException - 如果 datanull
IndexOutOfBoundsException - 如果 offsetlength 小於零,或者 offset+length 大於 data 陣列的長度。
另請參見:
drawBytes(byte[], int, int, int, int), drawString(java.lang.String, int, int)

drawBytes

public void drawBytes(byte[] data,
                      int offset,
                      int length,
                      int x,
                      int y)
使用此圖形上下文的當前字體和顏色繪製由指定 byte 陣列給定的文本。首字元的基線位於此圖形上下文坐標系的 (xy) 位置處。

不建議使用此方法,因為每個位元組都被解釋為 0 到 255 範圍內的 Unicode 程式碼點,因此在該範圍內只能用於繪製拉丁字元。

參數:
data - 要繪製的資料
offset - 資料的起始偏移量
length - 要繪製的位元組數
x - 文本基線的 x 坐標
y - 文本基線的 y 坐標
拋出:
NullPointerException - 如果 datanull
IndexOutOfBoundsException - 如果 offsetlength 小於零,或者 offset+length 大於 data 陣列的長度。
另請參見:
drawChars(char[], int, int, int, int), drawString(java.lang.String, int, int)

drawImage

public abstract boolean drawImage(Image img,
                                  int x,
                                  int y,
                                  ImageObserver observer)
繪製指定圖像中當前可用的圖像。圖像的左上角位於該圖形上下文坐標空間的 (xy)。圖像中的透明像素不影響該處已存在的像素。

此方法在任何情況下都立刻返回,甚至在圖像尚未完整載入,並且還沒有針對當前輸出設備完成抖動和轉換的情況下也是如此。

如果圖像已經完整載入,並且其像素不再發生更改,則 drawImage 返回 true。否則,drawImage 返回 false,並且隨著更多的圖像可用或者到了繪製動畫另一幀的時候,載入圖像的進程將通知指定的圖像觀察者。

參數:
img - 要繪製的指定圖像。如果 img 為 null,則此方法不執行任何操作。
x - x 坐標。
y - y 坐標。
observer - 轉換了更多圖像時要通知的物件。
返回:
如果圖像像素仍在更改,則返回 false;否則返回 true
另請參見:
Image, ImageObserver, ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)

drawImage

public abstract boolean drawImage(Image img,
                                  int x,
                                  int y,
                                  int width,
                                  int height,
                                  ImageObserver observer)
繪製指定圖像中已縮放到適合指定矩形內部的圖像。

圖像繪製在此圖形上下文坐標空間的指定矩形內部,如果需要,則進行縮放。透明像素不影響該處已存在的像素。

此方法在任何情況下都立刻返回,甚至在整個圖像沒有針對當前輸出設備完成縮放、抖動或轉換的情況下也是如此。如果當前輸出表示形式尚未完成,則 drawImage 返回 false。隨著更多的圖像可用,載入圖像的進程將通過調用圖像觀察者的 imageUpdate 方法來通知它。

縮放的圖像不一定立刻可用,因為已經針對此輸出設備建構了非縮放的圖像。每種大小的圖像可以被分別快取記憶體,並由各自圖像生產序列中的原始資料產生。

參數:
img - 要繪製的指定圖像。如果 img 為 null,則此方法不執行任何操作。
x - x 坐標。
y - y 坐標。
width - 矩形的寬度。
height - 矩形的高度。
observer - 轉換了更多圖像時要通知的物件。
返回:
如果圖像像素仍在改變,則返回 false;否則返回 true
另請參見:
Image, ImageObserver, ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)

drawImage

public abstract boolean drawImage(Image img,
                                  int x,
                                  int y,
                                  Color bgcolor,
                                  ImageObserver observer)
繪製指定圖像中當前可用的圖像。圖像的左上角位於此圖形上下文坐標空間的 (xy)。以指定的背景色繪製透明像素。

此操作等同於用給定顏色填充指定圖像寬度和高度的矩形,然後在其上繪製圖像,但此操作效率更高。

此方法在任何情況下都立刻返回,甚至在整個圖像尚未載入,並且還沒有針對當前輸出設備完成抖動和轉換的情況下也是如此。

如果圖像已經完全載入,並且其像素不再發生改變,則 drawImage 返回 true。否則 drawImage 返回 false,並且隨著更多的圖像可用或者到了繪製動畫另一幀的時候,載入圖像的進程將通知指定的圖像觀察者。

參數:
img - 要繪製的指定圖像。如果 img 為 null,則此方法不執行任何操作。
x - x 坐標。
y - y 坐標。
bgcolor - 在圖像非透明部分下繪製的背景色。
observer - 當轉換了更多圖像時要通知的物件。
返回:
如果圖像像素仍在改變,則返回 false;否則返回 true
另請參見:
Image, ImageObserver, ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)

drawImage

public abstract boolean drawImage(Image img,
                                  int x,
                                  int y,
                                  int width,
                                  int height,
                                  Color bgcolor,
                                  ImageObserver observer)
繪製指定圖像中已縮放到適合指定矩形內部的圖像。

圖像繪製在此圖形上下文坐標空間的指定矩形內部,如果需要,則進行縮放。以指定的背景色繪製透明像素。此操作等同於用給定顏色填充指定圖像寬度和高度的矩形,然後在其上繪製圖像,但此操作效率更高。

此方法在任何情況下都立刻返回,甚至在整個圖像沒有針對當前輸出設備完成縮放、抖動或轉換的情況下也是如此。如果當前的輸出表示形式尚未完成,則 drawImage 返回 false。隨著更多的圖像可用,載入圖像的進程將通知指定的圖像觀察者。

縮放的圖像不一定立刻是可用的,因為已經為此輸出設備建構了非縮放的圖像。每種大小的圖像可以被分別快取記憶體,並由各自圖像生產序列中的原始資料產生。

參數:
img - 要繪製的指定圖像。如果 img 為 null,則此方法不執行任何操作。
x - x 坐標。
y - y 坐標。
width - 矩形的寬度。
height - 矩形的高度。
bgcolor - 在圖像非透明部分下繪製的背景色。
observer - 當轉換了更多圖像時要通知的物件。
返回:
如果圖像像素仍在改變,則返回 false;否則返回 true
另請參見:
Image, ImageObserver, ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)

drawImage

public abstract boolean drawImage(Image img,
                                  int dx1,
                                  int dy1,
                                  int dx2,
                                  int dy2,
                                  int sx1,
                                  int sy1,
                                  int sx2,
                                  int sy2,
                                  ImageObserver observer)
繪製當前可用的指定圖像的指定區域,動態地縮放圖像使其符合目標繪製表面的指定區域。透明像素不影響該處已存在的像素。

此方法在任何情況下都立刻返回,甚至在要繪製的圖像區域沒有針對當前輸出設備完成縮放、抖動或轉換的情況下也是如此。如果當前的輸出表示形式尚未完成,則 drawImage 返回 false。隨著更多的圖像可用,載入圖像的進程將通知指定的圖像觀察者。

此方法總是用非縮放的圖像來呈現縮放的矩形,並且動態地執行所需的縮放。此操作不使用快取記憶體的縮放圖像。執行圖像從源到目標的縮放:源矩形的第一個坐標被映射到目標矩形的第一個坐標,第二個源坐標被映射到第二個目標坐標。按需要縮放和翻轉子圖像以保持這些映射關係。

參數:
img - 要繪製的指定圖像。如果 img 為 null,則此方法不執行任何操作。
dx1 - 目標矩形第一個角的 x 坐標。
dy1 - 目標矩形第一個角的 y 坐標。
dx2 - 目標矩形第二個角的 x 坐標。
dy2 - 目標矩形第二個角的 y 坐標。
sx1 - 源矩形第一個角的 x 坐標。
sy1 - 源矩形第一個角的 y 坐標。
sx2 - 源矩形第二個角的 x 坐標。
sy2 - 源矩形第二個角的 y 坐標。
observer - 當縮放並轉換了更多圖像時要通知的物件。
返回:
如果圖像像素仍在改變,則返回 false;否則返回 true
從以下版本開始:
JDK1.1
另請參見:
Image, ImageObserver, ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)

drawImage

public abstract boolean drawImage(Image img,
                                  int dx1,
                                  int dy1,
                                  int dx2,
                                  int dy2,
                                  int sx1,
                                  int sy1,
                                  int sx2,
                                  int sy2,
                                  Color bgcolor,
                                  ImageObserver observer)
繪製當前可用的指定圖像的指定區域,動態地縮放圖像使其符合目標繪製表面的指定區域。

以指定的背景色繪製透明像素。此操作等同於用給定顏色填充指定圖像寬度和高度的矩形,然後在其上繪製圖像,但此操作效率更高。

此方法在任何情況下都立刻返回,甚至在要繪製的圖像區域沒有針對當前輸出設備完成縮放、抖動或轉換的情況下也是如此。如果當前的輸出表示形式尚未完成,則 drawImage 返回 false。隨著更多的圖像可用,載入圖像的進程將通知指定的圖像觀察者。

此方法總是用非縮放的圖像來呈現縮放的矩形,並且動態地執行所需的縮放。此操作不使用快取記憶體的縮放圖像。執行圖像從源到目標的縮放:源矩形的第一個坐標被映射到目標矩形的第一個坐標,第二個源坐標被映射到第二個目標坐標。按需要縮放和翻轉子圖像以保持這些映射關係。

參數:
img - 要繪製的指定圖像。如果 img 為 null,則此方法不執行任何操作。
dx1 - 目標矩形第一個角的 x 坐標。
dy1 - 目標矩形第一個角的 y 坐標。
dx2 - 目標矩形第二個角的 x 坐標。
dy2 - 目標矩形第二個角的 y 坐標。
sx1 - 源矩形第一個角的 x 坐標。
sy1 - 源矩形第一個角的 y 坐標。
sx2 - 源矩形第二個角的 x 坐標。
sy2 - 源矩形第二個角的 y 坐標。
bgcolor - 在圖像非透明部分下繪製的背景色。
observer - 當縮放並轉換了更多圖像時要通知的物件。
返回:
如果圖像像素仍在改變,則返回 false;否則返回 true
從以下版本開始:
JDK1.1
另請參見:
Image, ImageObserver, ImageObserver.imageUpdate(java.awt.Image, int, int, int, int, int)

dispose

public abstract void dispose()
釋放此圖形的上下文以及它使用的所有系統資源。調用 dispose 之後,就不能再使用 Graphics 物件。

Java 程序運行時,可以在一個短時間幀內創建大量的 Graphics 物件。儘管垃圾回收器的終止進程也能夠進行相同的系統資源釋放,但是最好通過調用此方法來手工釋放相關資源,而不是依靠終止進程,因為終止進程需要很長時間才能結束運行。

作為元件 paintupdate 方法的參數提供的 Graphics 物件,在這些方法返回時將被系統自動釋放。為了提高效率,僅當所使用的 Graphics 物件是由元件或另一個 Graphics 物件直接創建時,開發人員才應在使用完此 Graphics 後調用 dispose

另請參見:
finalize(), Component.paint(java.awt.Graphics), Component.update(java.awt.Graphics), Component.getGraphics(), create()

finalize

public void finalize()
一旦不再參考此圖形上下文就釋放它。

覆寫:
類別 Object 中的 finalize
另請參見:
dispose()

toString

public String toString()
返回表示此 Graphics 物件值的 String 物件。

覆寫:
類別 Object 中的 toString
返回:
此圖形上下文的字元串表示形式。

getClipRect

@Deprecated
public Rectangle getClipRect()
已過時。 從 JDK version 1.1 開始,由 getClipBounds() 取代。

返回當前剪貼區域的邊界矩形。

返回:
當前剪貼區域的邊界矩形;如果未設置剪貼區,則返回 null

hitClip

public boolean hitClip(int x,
                       int y,
                       int width,
                       int height)
如果指定的矩形區域與當前的剪貼區域相交,則返回 true。指定矩形區域的坐標位於使用者坐標空間中,並且相對於此圖形上下文的坐標系原點。此方法可以使用快速計算出結果的演算法,但此演算法有時甚至在指定矩形區域與剪貼區域不相交時也返回 true。因此,所採用的指定演算法可能犧牲準確性來換取速度,但是除非能夠確保指定的矩形區域與當前剪貼區不相交,否則它不會返回 false。此方法使用的剪貼區域可以表示通過此圖形上下文的 clip 方法指定的使用者剪貼區的交集,也可以表示與設備或圖像邊界和視窗可見性關聯的剪貼區。

參數:
x - 要與剪貼區測試的矩形的 x 坐標
y - 要與剪貼區測試的矩形的 y 坐標
width - 要與剪貼區測試的矩形的寬度
height - 要與剪貼區測試的矩形的高度
返回:
如果指定的矩形與當前剪貼區邊界相交,則返回 true;否則返回 false

getClipBounds

public Rectangle getClipBounds(Rectangle r)
返回當前剪貼區域的邊界矩形。該矩形內的坐標相對於此圖形上下文的坐標系原點。此方法與 getClipBounds 不同,後者使用現有的矩形而不是分派一個新矩形。此方法參考使用者剪貼區,使用者剪貼區與設備邊界和視窗可見性關聯的剪貼區無關。如果以前未設置剪貼區,或者已使用 setClip(null) 清除了剪貼區,則此方法返回指定的 Rectangle

參數:
r - 要將當前剪貼區域複製到的矩形。此矩形的所有當前值均被覆寫。
返回:
當前剪貼區域的邊界矩形。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only