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, 2014, Oracle and/or its affiliates. All rights reserved.