public class Rectangle extends Rectangle2D implements Shape, Serializable
Rectangle は、座標空間内の Rectangle オブジェクトの左上の点 (x,y)、その幅、およびその高さで囲まれた座標空間内の領域を指定します。
Rectangle オブジェクトの width および height は public フィールドです。Rectangle を作成するコンストラクタ、および Rectangle を変更できるメソッドには、width や height の値として負の値を設定できます。
幅または高さが正確に 0 である Rectangle は、これらの軸に沿った位置で寸法 0 ですが、それ以外の場合は空であると見なされます。isEmpty() メソッドは、そのような Rectangle に対して true を返します。空の Rectangle が点または矩形を含むか交差するかを判定するメソッドは、いずれかの寸法が 0 であれば常に false を返します。そのような Rectangle を点または矩形と結合するメソッドの結果には、add(Point) メソッドが呼び出された場合と同じように、その軸上の Rectangle の位置が含まれます。
Rectangle の位置のみに影響するメソッドは、その寸法がどちらかの軸に沿って負または 0 であるかどうかに関係なく、Rectangle の位置で機能します。
デフォルトの引数をとらないコンストラクタで構築された Rectangle は、寸法が 0x0 であり、そのため空になります。この Rectangle の位置は (0,0) になり、この位置は結合操作および追加操作で使用されます。そのため、点のセットの境界を累積しようとするコードでは、最初に負の幅と高さを使用して Rectangle を構築するか、セットの最初の点を使用して Rectangle を構築する必要があります。次に例を示します。
Rectangle bounds = new Rectangle(0, 0, -1, -1);
for (int i = 0; i < points.length; i++) {
bounds.add(points[i]);
}
点の配列に少なくとも 1 つの点が含まれることがわかっている場合は、次のようになります。
Rectangle bounds = new Rectangle(points[0]);
for (int i = 1; i < points.length; i++) {
bounds.add(points[i]);
}
このクラスは 32 ビット整数を使用して、位置および寸法を格納します。操作によっては、結果が 32 ビット整数の範囲を超えることもあります。メソッドは結果を計算する際に、中間結果で 32 ビットオーバーフローが発生しないような方法を使用し、位置および寸法を保持する 32 ビットフィールドに最終結果を格納するための最適表現を選択します。結果の位置は、実際の結果を直近の 32 ビット値にクリッピングして、x および y フィールドに格納されます。width および height 寸法フィールドに格納される値には、実際の結果を最大限に含むような 32 ビット値が選択されます。一般に、寸法は 32 ビット整数の範囲とは無関係にクリッピングされます。ただし、位置を 32 ビットフィールドのペアに格納できるように位置を移動した場合は、位置の「最適表現」に合わせて寸法が調整されます。実際の結果に負の寸法が含まれるために一方または両方の軸に沿って存在しないものとされている場合、格納される寸法はそれらの軸で負の値になります。実際の結果の位置が、32 ビット整数の範囲内で表現可能だが、一方または両方の軸で寸法が 0 である場合、格納される寸法はそれらの軸で 0 になります。
Rectangle2D.Double, Rectangle2D.Float| 修飾子と型 | フィールドと説明 |
|---|---|
int |
height
Rectangle の高さ。 |
int |
width
Rectangle の幅。 |
int |
x
Rectangle の左上隅の X 座標。 |
int |
y
Rectangle の左上隅の Y 座標。 |
OUT_BOTTOM, OUT_LEFT, OUT_RIGHT, OUT_TOP| コンストラクタと説明 |
|---|
Rectangle()
左上隅が座標空間内の (0, 0) にあり、幅と高さがどちらも 0 である新しい
Rectangle を構築します。 |
Rectangle(Dimension d)
左上隅が (0, 0) であり、幅と高さが
Dimension 引数によって指定される新しい Rectangle を構築します。 |
Rectangle(int width, int height)
左上隅が座標空間内の (0, 0) にあり、幅と高さが width 引数と height 引数によって指定される新しい
Rectangle を構築します。 |
Rectangle(int x, int y, int width, int height)
左上隅が
(x,y) として指定され、幅と高さが width 引数と height 引数によって指定される新しい Rectangle を構築します。 |
Rectangle(Point p)
左上隅が指定された
Point であり、幅と高さがどちらも 0 である新しい Rectangle を構築します。 |
Rectangle(Point p, Dimension d)
|
Rectangle(Rectangle r)
指定された
Rectangle の値に一致するように初期化された新しい Rectangle を構築します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
void |
add(int newx, int newy)
整数の引数
newx,newy によって指定された点をこの Rectangle の境界に追加します。 |
void |
add(Point pt)
指定された
Point をこの Rectangle の境界に追加します。 |
void |
add(Rectangle r)
Rectangle をこの Rectangle に追加します。 |
boolean |
contains(int x, int y)
この
Rectangle に、指定された位置 (x,y) にある点が含まれるかどうかをチェックします。 |
boolean |
contains(int X, int Y, int W, int H)
この
Rectangle に、指定された寸法 (W,H) を持つ指定された位置 (X,Y) にある Rectangle が完全に含まれるかどうかをチェックします。 |
boolean |
contains(Point p)
この
Rectangle に、指定された Point が含まれるかどうかをチェックします。 |
boolean |
contains(Rectangle r)
この
Rectangle に、指定された Rectangle が完全に含まれるかどうかをチェックします。 |
Rectangle2D |
createIntersection(Rectangle2D r)
この
Rectangle2D と指定された Rectangle2D の共通部分を表す新しい Rectangle2D オブジェクトを返します。 |
Rectangle2D |
createUnion(Rectangle2D r)
この
Rectangle2D と指定された Rectangle2D の和集合を表す新しい Rectangle2D オブジェクトを返します。 |
boolean |
equals(Object obj)
2 つの矩形が同じかどうかを判定します。
|
Rectangle |
getBounds()
この
Rectangle の境界の Rectangle を取得します。 |
Rectangle2D |
getBounds2D()
高精度で、かつ
getBounds メソッドより正確な Shape のバウンディングボックスを返します。 |
double |
getHeight()
境界の
Rectangle の高さを double 精度で返します。 |
Point |
getLocation()
この
Rectangle の位置を返します。 |
Dimension |
getSize()
返された
Dimension で表された、この Rectangle のサイズを取得します。 |
double |
getWidth()
境界の
Rectangle の幅を double 精度で返します。 |
double |
getX()
境界の
Rectangle の X 座標を double 精度で返します。 |
double |
getY()
境界の
Rectangle の Y 座標を double 精度で返します。 |
void |
grow(int h, int v)
Rectangle のサイズを水平方向と垂直方向の両方に変更します。 |
boolean |
inside(int X, int Y)
非推奨。
JDK version 1.1 以降は、
contains(int, int) に置き換えられています。 |
Rectangle |
intersection(Rectangle r)
この
Rectangle と指定された Rectangle の共通部分を計算します。 |
boolean |
intersects(Rectangle r)
この
Rectangle と指定された Rectangle が交差しているかどうかを判定します。 |
boolean |
isEmpty()
RectangularShape が空であるかどうかを判定します。 |
void |
move(int x, int y)
非推奨。
JDK version 1.1 以降は、
setLocation(int, int) に置き換えられています。 |
int |
outcode(double x, double y)
この
Rectangle2D を基準に、指定された座標がある場所を判定します。 |
void |
reshape(int x, int y, int width, int height)
非推奨。
JDK version 1.1 以降は、
setBounds(int, int, int, int) に置き換えられています。 |
void |
resize(int width, int height)
非推奨。
JDK version 1.1 以降は、
setSize(int, int) に置き換えられています。 |
void |
setBounds(int x, int y, int width, int height)
この
Rectangle の境界の Rectangle を指定された x、y、width、および height に設定します。 |
void |
setBounds(Rectangle r)
この
Rectangle の境界の Rectangle を指定された Rectangle に一致するように設定します。 |
void |
setLocation(int x, int y)
この
Rectangle を指定された位置に移動します。 |
void |
setLocation(Point p)
この
Rectangle を指定された位置に移動します。 |
void |
setRect(double x, double y, double width, double height)
この
Rectangle の境界を、指定された x、y、width、および height を取り囲む整数境界に設定します。 |
void |
setSize(Dimension d)
この
Rectangle のサイズを指定された Dimension に一致するように設定します。 |
void |
setSize(int width, int height)
この
Rectangle のサイズを指定された幅と高さに設定します。 |
String |
toString()
この
Rectangle とその値を表す String を返します。 |
void |
translate(int dx, int dy)
この
Rectangle を X 座標軸に沿って右方向に、Y 座標軸に沿って下方向に、示された距離だけ平行移動します。 |
Rectangle |
union(Rectangle r)
この
Rectangle と指定された Rectangle の和集合を計算します。 |
add, add, add, contains, contains, getPathIterator, getPathIterator, hashCode, intersect, intersects, intersectsLine, intersectsLine, outcode, setFrame, setRect, unionclone, contains, contains, getCenterX, getCenterY, getFrame, getMaxX, getMaxY, getMinX, getMinY, intersects, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonalcontains, contains, contains, contains, getPathIterator, getPathIterator, intersects, intersectspublic int x
Rectangle の左上隅の X 座標。setLocation(int, int), getLocation()public int y
Rectangle の左上隅の Y 座標。setLocation(int, int), getLocation()public int width
Rectangle の幅。setSize(int, int), getSize()public int height
Rectangle の高さ。setSize(int, int), getSize()public Rectangle()
Rectangle を構築します。public Rectangle(Rectangle r)
Rectangle の値に一致するように初期化された新しい Rectangle を構築します。r - 新しく構築される Rectangle の初期値のコピー元となる Rectanglepublic Rectangle(int x,
int y,
int width,
int height)
(x,y) として指定され、幅と高さが width 引数と height 引数によって指定される新しい Rectangle を構築します。x - 指定された X 座標y - 指定された Y 座標width - Rectangle の幅。height - Rectangle の高さ。public Rectangle(int width,
int height)
Rectangle を構築します。width - Rectangle の幅。height - Rectangle の高さ。public Rectangle(Point p, Dimension d)
p - この Rectangle の左上隅の Pointd - Rectangle の幅と高さを表す Dimensionpublic Rectangle(Point p)
Point であり、幅と高さがどちらも 0 である新しい Rectangle を構築します。p - この Rectangle の左上隅の Pointpublic Rectangle(Dimension d)
Dimension 引数によって指定される新しい Rectangle を構築します。d - 幅と高さを指定する Dimensionpublic double getX()
Rectangle の X 座標を double 精度で返します。getX、クラス: RectangularShapeRectangle 領域の X 座標。public double getY()
Rectangle の Y 座標を double 精度で返します。getY、クラス: RectangularShapeRectangle 領域の Y 座標。public double getWidth()
Rectangle の幅を double 精度で返します。getWidth、クラス: RectangularShapeRectangle 領域の幅。public double getHeight()
Rectangle の高さを double 精度で返します。getHeight、クラス: RectangularShapeRectangle 領域の高さ。public Rectangle getBounds()
getBounds、インタフェース: ShapegetBounds、クラス: RectangularShapeRectangle。この Rectangle の境界の Rectangle 領域に等しい。Component.getBounds(), setBounds(Rectangle), setBounds(int, int, int, int)public Rectangle2D getBounds2D()
getBounds メソッドより正確な Shape のバウンディングボックスを返します。返された Rectangle2D が、Shape を囲む最小のバウンディングボックスであるという保証はないことに注意してください。Shape が、示された Rectangle2D 内に完全に含まれるだけです。戻り値を、倍精度値を使用して寸法を格納する Rectangle2D のインスタンスにすることができるため、このメソッドによって返されたバウンディングボックスは通常、getBounds メソッドによって返されたものより厳密であり、オーバーフローの問題のために失敗することはありません。
内側の定義によって、shape の定義する輪郭上の点が、返された bounds オブジェクトに含まれていると見なされない状況が発生する場合があることに注意してください。ただし、これは、これらの点が元の shape にも含まれていないと見なされる場合のみです。
point が contains(point) メソッドに従って shape の内側にある場合は、bounds の contains(point) メソッドに従って、返された Rectangle2D 境界オブジェクトの内側にある必要があります。具体的には、次のようになります。
shape.contains(p)
には bounds.contains(p) が必要
point が shape の内側にない場合は、引き続き bounds オブジェクトに含まれている可能性があります。
bounds.contains(p) は shape.contains(p) を示さない
getBounds2D、インタフェース: ShapegetBounds2D、クラス: Rectangle2DShape の高精度のバウンディングボックスである Rectangle2D のインスタンス。Shape.getBounds()public void setBounds(Rectangle r)
Rectangle の境界の Rectangle を指定された Rectangle に一致するように設定します。
このメソッドは完全性のために含まれており、Component の setBounds メソッドに対応します。
r - 指定されたRectanglegetBounds(), Component.setBounds(java.awt.Rectangle)public void setBounds(int x,
int y,
int width,
int height)
Rectangle の境界の Rectangle を指定された x、y、width、および height に設定します。
このメソッドは完全性のために含まれており、Component の setBounds メソッドに対応します。
x - この Rectangle の左上隅の新しい X 座標y - この Rectangle の左上隅の新しい Y 座標width - この Rectangle の新しい幅height - この Rectangle の新しい高さgetBounds(), Component.setBounds(int, int, int, int)public void setRect(double x,
double y,
double width,
double height)
Rectangle の境界を、指定された x、y、width、および height を取り囲む整数境界に設定します。これらのパラメータによって整数の最大範囲を超える Rectangle が指定される場合、最大整数境界と交差する、指定された Rectangle の最適表現が得られます。setRect、クラス: Rectangle2Dx - 指定された矩形の左上隅の X 座標y - 指定された矩形の左上隅の Y 座標width - 指定された矩形の幅height - 指定された矩形の新しい高さ@Deprecated public void reshape(int x, int y, int width, int height)
setBounds(int, int, int, int) に置き換えられています。Rectangle の境界の Rectangle を指定された x、y、width、および height に設定します。
x - この Rectangle の左上隅の新しい X 座標y - この Rectangle の左上隅の新しい Y 座標width - この Rectangle の新しい幅height - この Rectangle の新しい高さpublic Point getLocation()
Rectangle の位置を返します。
このメソッドは完全性のために含まれており、Component の getLocation メソッドに対応します。
Rectangle の左上隅の Point。Component.getLocation(), setLocation(Point), setLocation(int, int)public void setLocation(Point p)
Rectangle を指定された位置に移動します。
このメソッドは完全性のために含まれており、Component の setLocation メソッドに対応します。
p - この Rectangle の新しい位置を指定する PointComponent.setLocation(java.awt.Point), getLocation()public void setLocation(int x,
int y)
Rectangle を指定された位置に移動します。
このメソッドは完全性のために含まれており、Component の setLocation メソッドに対応します。
x - 新しい位置の X 座標y - 新しい位置の Y 座標getLocation(), Component.setLocation(int, int)@Deprecated public void move(int x, int y)
setLocation(int, int) に置き換えられています。Rectangle を指定された位置に移動します。
x - 新しい位置の X 座標y - 新しい位置の Y 座標public void translate(int dx,
int dy)
Rectangle を X 座標軸に沿って右方向に、Y 座標軸に沿って下方向に、示された距離だけ平行移動します。dx - X 軸に沿ってこの Rectangle が移動する距離dy - Y 軸に沿ってこの Rectangle が移動する距離setLocation(int, int), setLocation(java.awt.Point)public Dimension getSize()
Dimension で表された、この Rectangle のサイズを取得します。
このメソッドは完全性のために含まれており、Component の getSize メソッドに対応します。
Rectangle のサイズを表す Dimension。Component.getSize(), setSize(Dimension), setSize(int, int)public void setSize(Dimension d)
Rectangle のサイズを指定された Dimension に一致するように設定します。
このメソッドは完全性のために含まれており、Component の setSize メソッドに対応します。
d - Dimension オブジェクトの新しいサイズComponent.setSize(java.awt.Dimension), getSize()public void setSize(int width,
int height)
Rectangle のサイズを指定された幅と高さに設定します。
このメソッドは完全性のために含まれており、Component の setSize メソッドに対応します。
width - この Rectangle の新しい幅height - この Rectangle の新しい高さComponent.setSize(int, int), getSize()@Deprecated public void resize(int width, int height)
setSize(int, int) に置き換えられています。Rectangle のサイズを指定された幅と高さに設定します。
width - この Rectangle の新しい幅height - この Rectangle の新しい高さpublic boolean contains(Point p)
Rectangle に、指定された Point が含まれるかどうかをチェックします。p - テストする PointPoint がこの Rectangle の内側にある場合は true、そうでない場合は false。public boolean contains(int x,
int y)
Rectangle に、指定された位置 (x,y) にある点が含まれるかどうかをチェックします。x - 指定された X 座標y - 指定された Y 座標(x,y) がこの Rectangle の内側にある場合は true、それ以外の場合は false。public boolean contains(Rectangle r)
Rectangle に、指定された Rectangle が完全に含まれるかどうかをチェックします。r - 指定された RectangleRectangle が完全にこの Rectangle に含まれる場合は true、そうでない場合は falsepublic boolean contains(int X,
int Y,
int W,
int H)
Rectangle に、指定された寸法 (W,H) を持つ指定された位置 (X,Y) にある Rectangle が完全に含まれるかどうかをチェックします。X - 指定された X 座標Y - 指定された Y 座標W - Rectangle の幅。H - Rectangle の高さ。(X, Y, W, H) で指定される Rectangle が完全にこの Rectangle 内に収まる場合は true、そうでない場合は false。@Deprecated public boolean inside(int X, int Y)
contains(int, int) に置き換えられています。Rectangle に、指定された位置 (X,Y) にある点が含まれるかどうかをチェックします。X - 指定された X 座標Y - 指定された Y 座標(X,Y) がこの Rectangle の内側にある場合は true、それ以外の場合は false。public boolean intersects(Rectangle r)
Rectangle と指定された Rectangle が交差しているかどうかを判定します。共通部分が空でない場合、2 つの矩形は交差します。r - 指定された RectangleRectangle とこの Rectangle が交差する場合は true、そうでない場合は false。public Rectangle intersection(Rectangle r)
Rectangle と指定された Rectangle の共通部分を計算します。2 つの矩形の共通部分を表す新しい Rectangle を返します。2 つの矩形が交差しない場合、空の矩形が返されます。r - 指定された RectangleRectangle とこの Rectangle の両方に収まる最大の Rectangle、これらの矩形が交差しない場合は空の矩形。public Rectangle union(Rectangle r)
Rectangle と指定された Rectangle の和集合を計算します。2 つの矩形の和集合を表す新しい Rectangle を返します。
いずれかの Rectangle に 0 より小さい寸法がある場合は、存在しない矩形の規則が適用されます。一方だけに 0 より小さい寸法がある場合は、他方の Rectangle のコピーが返されます。両方とも 0 未満の場合は、0 未満の寸法が少なくとも 1 つ含まれます。
結果として得られる Rectangle の寸法が int として表すには大きくなりすぎる場合は、その寸法に合わせた Integer.MAX_VALUE の寸法になります。
r - 指定された RectangleRectangle とこの Rectangle の両方を含む最小の Rectangle。public void add(int newx,
int newy)
newx,newy によって指定された点をこの Rectangle の境界に追加します。
この Rectangle に 0 より小さい寸法がある場合は、存在しない矩形の規則が適用されます。この結果、この Rectangle の新しい境界の位置は、指定された座標と同じになり、幅と高さは 0 になります。
点を追加したあと、追加された点を引数とする contains の呼び出しは、必ずしも true を返しません。contains メソッドは、Rectangle の右端または下端にある点については true を返しません。そのため、追加された点が拡大後の Rectangle の右端または下端に位置する場合、contains はその点について false を返します。指定された点が新しい Rectangle 内に含まれている必要がある場合は、代わりに 1x1 の矩形を追加するようにしてください。
r.add(newx, newy, 1, 1);
newx - 新しい点の X 座標newy - 新しい点の Y 座標public void add(Point pt)
Point をこの Rectangle の境界に追加します。
この Rectangle に 0 より小さい寸法がある場合は、存在しない矩形の規則が適用されます。この結果、この Rectangle の新しい境界の位置は、指定された Point の座標と同じになり、幅と高さは 0 になります。
Point を追加したあと、追加された Point を引数とする contains の呼び出しは、必ずしも true を返しません。contains メソッドは、Rectangle の右端または下端にある点については true を返しません。そのため、追加された Point が拡大後の Rectangle の右端または下端に位置する場合、contains はその Point について false を返します。指定された点が新しい Rectangle 内に含まれている必要がある場合は、代わりに 1x1 の矩形を追加するようにしてください。
r.add(pt.x, pt.y, 1, 1);
pt - この Rectangle に追加される新しい Pointpublic void add(Rectangle r)
Rectangle をこの Rectangle に追加します。その結果の Rectangle は、2 つの矩形の和集合となります。
一方の Rectangle で寸法が 0 未満の場合、結果は他方の Rectangle の寸法が返されます。両方の Rectangle で 0 未満の寸法が少なくとも 1 つ含まれる場合は、結果に 0 未満の寸法が少なくとも 1 つ含まれます。
いずれかの Rectangle で一方または両方の寸法が 0 である場合、これらの軸に沿った寸法 0 の結果は、対応する原点座標をその軸に沿った結果の矩形に追加することで得られる結果と等しくなります。これは add(Point) メソッドによる操作に似ていますが、結果の矩形を超える寸法は使用されません。
結果として得られる Rectangle の寸法が int として表すには大きくなりすぎる場合は、その寸法に合わせた Integer.MAX_VALUE の寸法になります。
r - 指定された Rectanglepublic void grow(int h,
int v)
Rectangle のサイズを水平方向と垂直方向の両方に変更します。
このメソッドは、左右にそれぞれ h 単位ずつ、上下にそれぞれ v 単位ずつ大きくなるように、Rectangle を変更します。
新しい Rectangle は、左上隅が (x - h, y - v)、幅が (width + 2h)、高さが (height + 2v) になります。
h と v に負の値が指定された場合、Rectangle のサイズは小さくなります。grow メソッドは、整数型のオーバーフローおよびアンダーフローを確認しますが、width および height で得られる値が負の値から負でない値へと増加するか、負でない値から負の値へと減少するかについては確認しません。
h - 水平方向に拡大する量v - 垂直方向に拡大する量public boolean isEmpty()
RectangularShape が空であるかどうかを判定します。RectangularShape が空の場合は、領域はありません。isEmpty、クラス: RectangularShapeRectangularShape が空である場合は true、そうでない場合は false。public int outcode(double x,
double y)
Rectangle2D を基準に、指定された座標がある場所を判定します。このメソッドは、この Rectangle2D の各辺について、指定された座標がこの Rectangle2D のほかの辺と同じサイドにあるかどうかを示す適切なマスク値の 2 項論理和を計算します。outcode、クラス: Rectangle2Dx - 指定された X 座標y - 指定された Y 座標Rectangle2D.OUT_LEFT, Rectangle2D.OUT_TOP, Rectangle2D.OUT_RIGHT, Rectangle2D.OUT_BOTTOMpublic Rectangle2D createIntersection(Rectangle2D r)
Rectangle2D と指定された Rectangle2D の共通部分を表す新しい Rectangle2D オブジェクトを返します。createIntersection、クラス: Rectangle2Dr - この Rectangle2D と交差させる Rectangle2DRectangle2D とこの Rectangle2D の両方に含まれる最大の Rectangle2D。public Rectangle2D createUnion(Rectangle2D r)
Rectangle2D と指定された Rectangle2D の和集合を表す新しい Rectangle2D オブジェクトを返します。createUnion、クラス: Rectangle2Dr - この Rectangle2D と結合される Rectangle2DRectangle2D とこの Rectangle2D の両方を含む最小の Rectangle2D。public boolean equals(Object obj)
引数が null でなく、この Rectangle と同じ左上隅、高さ、および幅を持つ Rectangle オブジェクトである場合にだけ、結果は true になります。
equals、クラス: Rectangle2Dobj - この Rectangle と比較する Objecttrue、そうでない場合は false。Object.hashCode(), HashMap バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.