JavaTM 2
Platform
Std. Ed. v1.4.0

java.awt
クラス BasicStroke

java.lang.Object
  |
  +--java.awt.BasicStroke
すべての実装インタフェース:
Stroke

public class BasicStroke
extends Object
implements Stroke

BasicStroke クラスは、単純な図形の輪郭線を描画する属性の基本セットを定義します。この描画は、Stroke 属性をこの BasicStroke に設定した Graphics2D オブジェクトによって行われます。BasicStroke で定義される描画属性は、Shape の輪郭をなぞってペンで描画される記号の形状、端部の装飾、または Shape の輪郭線セグメントの接合を記述します。このような描画属性には次のようなものがあります。

ペンの軌跡に対して垂直方向のペンの幅
先端
閉じられていない部分輪郭線セグメントと破線セグメントの両端の装飾。部分輪郭線の起点と終点が同じ場合でも、CLOSE セグメントがない場合は閉じていないとみなされる。CLOSE セグメントについては SEG_CLOSE を参照。CAP_BUTTCAP_ROUND、および CAP_SQUARE の 3 種類の装飾がある
ライン接合
2 つの輪郭線セグメントの交点、およびSEG_CLOSE で閉じられる部分輪郭線の両端の交点の装飾。JOIN_BEVELJOIN_MITER、および JOIN_ROUND の 3 種類の装飾がある
接合制限値
JOIN_MITER 装飾のライン接合のトリミングを行う制限値。ライン接合のトリミングは、接合の長さのストローク幅に対する割合が、接合制限値を超えた場合に実行される。接合の長さは接合部分の対角線の長さであり、交点の内側の角から外側の角までの距離である。2 つのラインセグメントの角度が小さくなればなるほど、接合部分は長くなり、交差角度は小さくなる。デフォルトの接合制限値 10.0f では、角度が 11 度より小さくなった場合にトリミングを行う。接合のトリミングではライン接合の装飾が斜影に変換される
破線属性
不透明部分と透明部分とが交互になるようにして破線を作成する方法の定義
返される輪郭線の形状を制御する寸法や距離を指定するすべての属性は、ストロークのないオリジナルの Shape 引数と同じ座標系で測定されます。Graphics2D オブジェクトが Stroke オブジェクトを使って draw メソッドの 1 つを実行している場合に輪郭線を再定義する場合、Graphics2D 変換による属性が適用される前のオリジナルのジオメトリが使用されます。このため、ペン幅などの属性は Graphics2D オブジェクトのユーザ空間座標システムの値として解釈され、ユーザ空間からデバイス空間に変換する場合に、スケーリング効果とシャーリング効果の影響を受けます。たとえば、描画される図形の輪郭の幅の決定には、この BasicStroke の幅属性だけでなく、Graphics2D オブジェクトの変換属性も影響します。以下のコードを参照してください。
// sets the Graphics2D object's Transform attirbute g2d.scale(10, 10); // sets the Graphics2D object's Storoke attribute g2d.setStroke(new BasicStroke(1.5f));
Graphics2D オブジェクトに他のスケーリング変換が追加されていないと場合、生成されるラインの幅は約 15 ピクセルになります。サンプルコードで示されているように、特に Graphics2D オブジェクトを使用して大規模な変換が実行される場合は、浮動小数点ラインの方が精度が高くなります。対角線の場合、正確な幅は、描画パイプラインが理論上の幅の輪郭をなぞる際に、どのピクセル上に描画するかで決定されます。描画対象ピクセルの選択にはアンチエイリアシング属性も影響します。アンチエイリアシング描画パイプラインは、部分的に覆われるピクセルも描画対象として選択できるためです。

ユーザ空間座標系と描画プロセスについては、Graphics2D クラスの説明を参照してください。

関連項目:
Graphics2D

フィールドの概要
static int CAP_BUTT
          装飾を付けずに、閉じられていない部分輪郭線および破線セグメントを終了します。
static int CAP_ROUND
          ペン幅の半分の長さを半径とした丸い装飾を付けて、閉じられていない部分輪郭線および破線セグメントを終了します。
static int CAP_SQUARE
          ライン幅の半分の長さに等しい距離だけセグメントの先端を延長する正方形を付けて、閉じられていない部分輪郭線および破線セグメントを終了します。
static int JOIN_BEVEL
          幅の広い輪郭線の外側の角を直線セグメントに接合するようにして輪郭線セグメントを接合します。
static int JOIN_MITER
          ラインセグメントの外側の端が重なるまで延長して輪郭線セグメントを接合します。
static int JOIN_ROUND
          ライン幅の半分の長さを半径として、角を丸く切り落として輪郭線セグメントを接合します。
 
コンストラクタの概要
BasicStroke()
          すべての属性に既定値を使って新しい BasicStroke を構築します。
BasicStroke(float width)
          指定された線幅と、先端およびライン接合のスタイルの既定値を使って、実線で BasicStroke を構築します。
BasicStroke(float width, int cap, int join)
          指定された属性を持つ実線の BasicStroke を構築します。
BasicStroke(float width, int cap, int join, float miterlimit)
          指定された属性を持つ実線の BasicStroke を構築します。
BasicStroke(float width, int cap, int join, float miterlimit, float[] dash, float dash_phase)
          指定された属性を持つ新しい BasicStroke を構築します。
 
メソッドの概要
 Shape createStrokedShape(Shape s)
          指定された Shape をストロークで描画した輪郭を表す内部を持つ Shape を返します。
 boolean equals(Object obj)
          指定されたオブジェクトがこの BasicStroke と等しいかどうかを判定します。
 float[] getDashArray()
          破線セグメントの長さを表す配列を返します。
 float getDashPhase()
          現在の破線フェーズを返します。
 int getEndCap()
          先端のスタイルを返します。
 int getLineJoin()
          ライン接合のスタイルを返します。
 float getLineWidth()
          ラインの幅を返します。
 float getMiterLimit()
          トリミング制限値を返します。
 int hashCode()
          このストロークのハッシュコードを返します。
 
クラス java.lang.Object から継承したメソッド
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

JOIN_MITER

public static final int JOIN_MITER
ラインセグメントの外側の端が重なるまで延長して輪郭線セグメントを接合します。

関連項目:
定数フィールド値

JOIN_ROUND

public static final int JOIN_ROUND
ライン幅の半分の長さを半径として、角を丸く切り落として輪郭線セグメントを接合します。

関連項目:
定数フィールド値

JOIN_BEVEL

public static final int JOIN_BEVEL
幅の広い輪郭線の外側の角を直線セグメントに接合するようにして輪郭線セグメントを接合します。

関連項目:
定数フィールド値

CAP_BUTT

public static final int CAP_BUTT
装飾を付けずに、閉じられていない部分輪郭線および破線セグメントを終了します。

関連項目:
定数フィールド値

CAP_ROUND

public static final int CAP_ROUND
ペン幅の半分の長さを半径とした丸い装飾を付けて、閉じられていない部分輪郭線および破線セグメントを終了します。

関連項目:
定数フィールド値

CAP_SQUARE

public static final int CAP_SQUARE
ライン幅の半分の長さに等しい距離だけセグメントの先端を延長する正方形を付けて、閉じられていない部分輪郭線および破線セグメントを終了します。

関連項目:
定数フィールド値
コンストラクタの詳細

BasicStroke

public BasicStroke(float width,
                   int cap,
                   int join,
                   float miterlimit,
                   float[] dash,
                   float dash_phase)
指定された属性を持つ新しい BasicStroke を構築します。

パラメータ:
width - この BasicStroke の幅。値は 0.0f. 以上でなければならない。幅が 0.0f に設定されている場合、ストロークは対象のデバイス上の最も細いラインとして描画される。また、このときアンチエイリアス設定が使用される
cap - BasicStroke の両端の装飾
join - 輪郭線セグメントの接合部の装飾
miterlimit - 接合トリミングの制限値。1.0f 以上でなければならない
dash - 破線パターンを表す配列
dash_phase - 破線パターン開始位置のオフセット
例外:
IllegalArgumentException - width が負の値の場合
IllegalArgumentException - if cap が CAP_BUTT、CAP_ROUND、または CAP_SQUARE のどれでもない場合
IllegalArgumentException - miterlimit が 1 より小さく、join が JOIN_MITER の場合
IllegalArgumentException - join が JOIN_ROUND、JOIN_BEVEL、または JOIN_MITER のどれでもない場合
IllegalArgumentException - dash_phase が負の値で、dashnull でない場合
IllegalArgumentException - dash の長さがゼロの場合
IllegalArgumentException - 破線の長さがすべてゼロの場合

BasicStroke

public BasicStroke(float width,
                   int cap,
                   int join,
                   float miterlimit)
指定された属性を持つ実線の BasicStroke を構築します。

パラメータ:
width - BasicStroke の幅
cap - BasicStroke の両端の装飾
join - 輪郭線セグメントの接合部の装飾
miterlimit - 接合トリミングの制限値
例外:
IllegalArgumentException - width が負の値の場合
IllegalArgumentException - cap が CAP_BUTT、CAP_ROUND、または CAP_SQUARE のどれでもない場合
IllegalArgumentException - miterlimit が 1 より小さく、join が JOIN_MITER の場合
IllegalArgumentException - join が JOIN_ROUND、JOIN_BEVEL、JOIN_MITER のどれでもない場合

BasicStroke

public BasicStroke(float width,
                   int cap,
                   int join)
指定された属性を持つ実線の BasicStroke を構築します。既定値でかまわない場合や、ライン接合が JOIN_MITER に指定されていない場合は、miterlimit パラメータは不要です。

パラメータ:
width - BasicStroke の幅
cap - BasicStroke の両端の装飾
join - 輪郭線セグメントの接合部の装飾
例外:
IllegalArgumentException - width が負の値の場合
IllegalArgumentException - cap が CAP_BUTT、CAP_ROUND、または CAP_SQUARE のどれでもない場合
IllegalArgumentException - join が JOIN_ROUND、JOIN_BEVEL、または JOIN_MITER のどれでもない場合

BasicStroke

public BasicStroke(float width)
指定された線幅と、先端およびライン接合のスタイルの既定値を使って、実線で BasicStroke を構築します。

パラメータ:
width - BasicStroke の幅
例外:
IllegalArgumentException - width が負の値の場合

BasicStroke

public BasicStroke()
すべての属性に既定値を使って新しい BasicStroke を構築します。デフォルトの属性は、実線の幅 1.0、CAP_SQUARE、JOIN_MITER、トリミング制限値 10.0 です。

メソッドの詳細

createStrokedShape

public Shape createStrokedShape(Shape s)
指定された Shape をストロークで描画した輪郭を表す内部を持つ Shape を返します。

定義:
インタフェース Stroke 内の createStrokedShape
パラメータ:
s - ストロークで描画される Shape の境界
戻り値:
ストロークで描画された輪郭を表す Shape

getLineWidth

public float getLineWidth()
ラインの幅を返します。Java 2D でデフォルトの座標空間として使用されるユーザ空間での値が返されます。ユーザ空間の座標系については、Graphics2D クラスの解説を参照してください。

戻り値:
この BasicStroke のライン幅
関連項目:
Graphics2D

getEndCap

public int getEndCap()
先端のスタイルを返します。

戻り値:
この BasicStroke の先端のスタイル。先端のスタイルを定義する static int 値として返される

getLineJoin

public int getLineJoin()
ライン接合のスタイルを返します。

戻り値:
BasicStroke のライン接合のスタイル。ライン接合のスタイルを定義する static int 値として返される

getMiterLimit

public float getMiterLimit()
トリミング制限値を返します。

戻り値:
BasicStroke のトリミング制限値

getDashArray

public float[] getDashArray()
破線セグメントの長さを表す配列を返します。配列内のエントリが、破線の不透明セグメントと透明セグメントのユーザ空間での長さを交互に表します。ストロークで描画される Shape の輪郭に沿ってペンが移動するにつれて、ペンが移動するユーザ空間の距離が累積されます。距離の値は、破線配列のインデックスに使用されます。現在の累積距離が破線配列の偶数番目の要素にマッピングされる場合、ペンは不透明になり、奇数番目の要素にマッピングされる場合は透明になります。

戻り値:
破線配列

getDashPhase

public float getDashPhase()
現在の破線フェーズを返します。破線フェーズは、破線パターン内でのオフセットを表すユーザ空間で指定された距離です。つまり、破線フェーズは、ストロークの先頭に対応する破線パターン内の点を定義します。

戻り値:
float 値の破線フェーズ

hashCode

public int hashCode()
このストロークのハッシュコードを返します。

オーバーライド:
クラス Object 内の hashCode
戻り値:
このストロークのハッシュコード
関連項目:
Object.equals(java.lang.Object), Hashtable

equals

public boolean equals(Object obj)
指定されたオブジェクトがこの BasicStroke と等しいかどうかを判定します。最初にオブジェクトが BasicStroke であるかを判定し、次にそれぞれの BasicStroke オブジェクトの幅、接合、先端、トリミング制限値、破線、および破線フェーズ属性を比較します。

オーバーライド:
クラス Object 内の equals
パラメータ:
obj - この BasicStroke と比較するオブジェクト
戻り値:
2 つのオブジェクトの幅、接合、先端、トリミング制限値、破線、および破線フェーズが同じ場合は true、そうでない場合は false
関連項目:
Object.hashCode(), Hashtable

JavaTM 2
Platform
Std. Ed. v1.4.0

バグの報告と機能のリクエスト
これ以外の API リファレンスおよび開発者用ドキュメントについては、 Java 2 SDK SE 開発者用ドキュメントを参照してください。 開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、 およびコード実例が含まれています。

Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.