Класс Rectangle
- Все реализованные интерфейсы:
-
Shape,Serializable,Cloneable
- Прямые известные подклассы:
DefaultCaret
public class Rectangle extends Rectangle2D implements Shape, Serializable
Rectangle определяет область в пространстве координат, ограниченную точкой в верхнем левом углу объекта Rectangle в пространстве координат, его шириной и высотой. Поля width и height объекта типа Rectangle являются public полями. Конструкторы, создающие объект Rectangle, и методы, которые могут его изменить, не препятствуют установке отрицательного значения для ширины или высоты.
Объект Rectangle, у которого ширина или высота равна точно нулю, имеет координаты вдоль этих осей с нулевым размером, но при этом считается пустым. Метод isEmpty() вернёт true для такого объекта Rectangle. Методы, проверяющие, содержит ли пустой объект Rectangle точку или прямоугольник, или пересекается ли с ними, всегда возвращают false, если хотя бы одна из размерностей равна нулю. Методы, объединяющие такой объект Rectangle с точкой или прямоугольником, включат координаты объекта Rectangle на этой оси в результат, как будто вызывался метод add(Point).
Методы, которые влияют только на положение объекта 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]);
}
или если известно, что массив точек содержит по крайней мере одну точку:
Rectangle bounds = new Rectangle(points[0]);
for (int i = 1; i < points.length; i++) {
bounds.add(points[i]);
}
Этот класс использует 32-битные целые числа для хранения своих координат и размеров. Часто операции могут давать результат, превышающий диапазон 32-битного целого числа. Методы будут вычислять свои результаты таким образом, чтобы избежать любого 32-битного переполнения для промежуточных результатов, а затем выбрать наилучшее представление для хранения конечных результатов обратно в 32-битные поля, содержащие координаты и размеры. Координаты результата будут сохранены в полях x и y путем усечения истинного результата до ближайшего 32-битного значения. Значения, сохраненные в полях размера width и height, будут выбраны как 32-битные значения, которые охватывают наибольшую часть истинного результата насколько возможно. Как правило, это означает, что размер будет усечён независимо до диапазона 32-битных целых чисел, за исключением случаев, когда координаты нужно было сдвинуть для хранения их в паре 32-битных полей, тогда размеры будут скорректированы относительно «лучшего представления» координат. Если истинный результат имел отрицательный размер и, следовательно, был несуществующим по одной или обеим осям, сохранённые размеры будут отрицательными числами на этих осях. Если истинный результат имел координаты, которые могли быть представлены в диапазоне 32-битных целых чисел, но нулевой размер по одной или обеим осям, сохранённые размеры будут равны нулю на этих осях.
- С:
- 1.0
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе java.awt.geom.Rectangle2D
Rectangle2D.Double, Rectangle2D.Float
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
int |
height |
Высота Rectangle. |
int |
width |
Ширина Rectangle. |
int |
x |
Координата X левого верхнего угла Rectangle. |
int |
y |
Координата Y левого верхнего угла Rectangle. |
Поля, объявленные в классе java.awt.geom.Rectangle2D
OUT_BOTTOM, OUT_LEFT, OUT_RIGHT, OUT_TOP
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
Rectangle() |
Создаёт новый объект Rectangle с левым верхним углом в (0, 0) в пространстве координат и шириной и высотой, равными нулю. |
Rectangle |
Создаёт новый объект Rectangle с левым верхним углом в (0, 0) в пространстве координат и шириной и высотой, заданными аргументами с тем же именем. |
Rectangle |
Создаёт новый объект Rectangle с левым верхним углом, заданным как (x,y), и шириной и высотой, заданными аргументами с тем же именем. |
Rectangle |
Создаёт новый объект Rectangle с левым верхним углом (0, 0) и шириной и высотой, заданными аргументом Dimension. |
Rectangle |
Создаёт новый объект Rectangle с левым верхним углом, заданным Point, и шириной и высотой, равными нулю. |
Rectangle |
|
Rectangle |
Создаёт новый объект Rectangle, инициализированный по значениям указанного объекта Rectangle. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
add |
Добавляет точку, заданную целочисленными аргументами newx,newy, к границам этого Rectangle. |
void |
add |
Добавляет указанный Point к границам этого Rectangle. |
void |
add |
Добавляет Rectangle к этому Rectangle. |
boolean |
contains |
Проверяет, содержит ли этот Rectangle точку в указанном месте (x,y). |
boolean |
contains |
Проверяет, полностью ли этот Rectangle содержит Rectangle в указанном месте (X,Y) с указанными размерами (W,H). |
boolean |
contains |
Проверяет, содержит ли этот Rectangle указанный Point. |
boolean |
contains |
Проверяет, полностью ли этот Rectangle содержит указанный Rectangle. |
Rectangle2D |
createIntersection |
Возвращает новый объект Rectangle2D, представляющий пересечение этого Rectangle2D с указанным Rectangle2D. |
Rectangle2D |
createUnion |
Возвращает новый объект Rectangle2D, представляющий объединение этого Rectangle2D с указанным Rectangle2D. |
boolean |
equals |
Проверяет, равны ли два прямоугольника. |
Rectangle |
getBounds() |
Возвращает ограничивающую Rectangle этого Rectangle. |
Rectangle2D |
getBounds2D() |
Возвращает ограничивающую рамку Shape с большей точностью, чем метод getBounds. |
double |
getHeight() |
Возвращает высоту ограничивающей Rectangle в точности double. |
Point |
getLocation() |
Возвращает расположение этого Rectangle. |
Dimension |
getSize() |
Возвращает размер этого Rectangle, представленный возвращаемым Dimension. |
double |
getWidth() |
Возвращает ширину ограничивающей Rectangle в точности double. |
double |
getX() |
Возвращает координату X ограничивающей Rectangle в точности double. |
double |
getY() |
Возвращает координату Y ограничивающей Rectangle в точности double. |
void |
grow |
Изменяет размер Rectangle по горизонтали и вертикали. |
boolean |
inside |
Устарело. |
Rectangle |
intersection |
Вычисляет пересечение этого Rectangle с указанным Rectangle. |
boolean |
intersects |
Определяет, пересекаются ли этот Rectangle и указанный Rectangle. |
boolean |
isEmpty() |
Определяет, пуст ли RectangularShape. |
void |
move |
Устарело. С версии JDK 1.1 заменено на setLocation(int, int). |
int |
outcode |
Определяет, где указанные координаты находятся относительно этого Rectangle2D. |
void |
reshape |
Устарело. С версии JDK 1.1 заменено на setBounds(int, int, int, int). |
void |
resize |
Устарело. С версии JDK 1.1 заменено на setSize(int, int). |
void |
setBounds |
Устанавливает ограничивающую Rectangle этого Rectangle до указанного x, y, width и height. |
void |
setBounds |
Устанавливает ограничивающую Rectangle этого Rectangle, чтобы она соответствовала указанному Rectangle. |
void |
setLocation |
Перемещает этот Rectangle в указанное место. |
void |
setLocation |
Перемещает этот Rectangle в указанное место. |
void |
setRect |
Устанавливает границы этого Rectangle до целочисленных границ, которые охватывают указанные x, y, width и height. |
void |
setSize |
Устанавливает размер этого Rectangle до указанной ширины и высоты. |
void |
setSize |
Устанавливает размер этого Rectangle, чтобы он соответствовал указанному Dimension. |
String |
toString() |
Возвращает String, представляющий этот Rectangle и его значения. |
void |
translate |
Перемещает этот Rectangle на указанное расстояние вправо по оси X и вниз по оси Y. |
Rectangle |
union |
Вычисляет объединение этого Rectangle с указанным Rectangle. |
Методы, объявленные в классе java.awt.geom.Rectangle2D
add, add, add, contains, contains, getPathIterator, getPathIterator, hashCode, intersect, intersects, intersectsLine, intersectsLine, outcode, setFrame, setRect, union
Методы, объявленные в классе java.awt.geom.RectangularShape
clone, contains, contains, getCenterX, getCenterY, getFrame, getMaxX, getMaxY, getMinX, getMinY, intersects, setFrame, setFrame, setFrameFromCenter, setFrameFromCenter, setFrameFromDiagonal, setFrameFromDiagonal
Методы, объявленные в классе java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Методы, объявленные в интерфейсе java.awt.Shape
contains, contains, contains, contains, getPathIterator, getPathIterator, intersects, intersects
Подробное описание полей
x
public int x
Rectangle.- Since:
- 1.0
- См. также:
y
public int y
Rectangle.- Since:
- 1.0
- См. также:
width
public int width
Rectangle.- Since:
- 1.0
- См. также:
height
public int height
Rectangle.- Since:
- 1.0
- См. также:
Подробное описание конструкторов
Rectangle
public Rectangle()
Rectangle, верхний левый угол которого находится в координатах (0, 0), а ширина и высота равны нулю.Rectangle
public Rectangle(Rectangle r)
Rectangle, инициализированный значениями из заданного Rectangle.- Параметры:
-
r-Rectangleдля копирования начальных значений в новыйRectangle - Since:
- 1.1
Rectangle
public Rectangle(int x, int y, int width, int height)
Rectangle с верхним левым углом, заданным параметрами, и шириной и высотой, заданными аргументами с такими же именами.- Параметры:
-
x- заданная координата X -
y- заданная координата Y -
width- ширинаRectangle -
height- высотаRectangle - Since:
- 1.0
Rectangle
public Rectangle(int width, int height)
Rectangle, верхний левый угол которого находится в координатах (0, 0), а ширина и высота заданы аргументами с такими же именами.- Параметры:
-
width- ширинаRectangle -
height- высотаRectangle
Rectangle
Rectangle
public Rectangle(Point p)
Rectangle, верхний левый угол которого задан указанным Point, а ширина и высота равны нулю.- Параметры:
-
p-Point, являющийся верхним левым угломRectangle
Rectangle
public Rectangle(Dimension d)
Rectangle, верхний левый угол которого (0, 0), а ширина и высота заданы аргументом Dimension.- Параметры:
-
d-Dimension, задающий ширину и высоту
Подробное описание методов
getX
public double getX()
Rectangle в точности double.- Specified by:
-
getXin classRectangularShape - Returns:
- координата X ограничивающего
Rectangle.
getY
public double getY()
Rectangle в точности double.- Specified by:
-
getYin classRectangularShape - Returns:
- координата Y ограничивающего
Rectangle.
getWidth
public double getWidth()
Rectangle в точности double.- Specified by:
-
getWidthin classRectangularShape - Returns:
- ширина ограничивающего
Rectangle.
getHeight
public double getHeight()
Rectangle в точности double.- Specified by:
-
getHeightin classRectangularShape - Returns:
- высота ограничивающего
Rectangle.
getBounds
public Rectangle getBounds()
Rectangle этого Rectangle. Этот метод включён для полноты, чтобы соответствовать методу getBounds класса Component.
- Specified by:
-
getBoundsin interfaceShape - Overrides:
-
getBoundsin classRectangularShape - Returns:
- новый
Rectangle, равный ограничивающейRectangleдля этогоRectangle. - Since:
- 1.1
- См. также:
getBounds2D
public Rectangle2D getBounds2D()
Shape с большей точностью, чем метод getBounds. Обратите внимание, что нет гарантии, что возвращённый Rectangle2D является наименьшей ограничивающей рамкой, охватывающей Shape, только что Shape целиком лежит внутри указанной Rectangle2D. Ограничивающая рамка, возвращённая этим методом, обычно уже, чем та, что возвращается методом getBounds, и никогда не терпит неудачу из-за проблем с переполнением, так как возвращаемое значение может быть экземпляром Rectangle2D, использующим значения двойной точности для хранения размеров. Обратите внимание, что определение принадлежности может привести к ситуациям, где точки на определяющем контуре shape могут не считаться содержащимися в возвращаемом bounds объекте, но только в тех случаях, когда эти точки также не считаются содержащимися в исходном shape.
Если point находится внутри shape в соответствии с методом contains(point), то он должен находиться внутри возвращаемого Rectangle2D ограничивающего объекта в соответствии с методом contains(point) класса bounds. В частности:
shape.contains(p) требует bounds.contains(p)
Если point не находится внутри shape, то он всё ещё может быть содержимым в объекте bounds:
bounds.contains(p) не подразумевает shape.contains(p)
- Specified by:
-
getBounds2Din interfaceShape - Overrides:
-
getBounds2Din classRectangle2D - Returns:
- экземпляр
Rectangle2D, представляющий ограничивающую рамкуShapeс высокой точностью. - Since:
- 1.2
- См. также:
setBounds
public void setBounds(Rectangle r)
Этот метод включен для полноты, для соответствия методу setBounds объекта Component.
- Parameters:
-
r- заданный прямоугольник - Since:
- 1.1
- See Also:
setBounds
public void setBounds(int x, int y, int width, int height)
Этот метод включён для полноты, для соответствия методу setBounds объекта Component.
- Parameters:
-
x- новая координата X для верхнего левого угла этого объекта -
y- новая координата Y для верхнего левого угла этого объекта -
width- новая ширина этого объекта -
height- новая высота этого объекта - Since:
- 1.1
- See Also:
setRect
public void setRect(double x, double y, double width, double height)
- Specified by:
-
setRectв классеRectangle2D - Parameters:
-
x- координата X верхнего левого угла заданного прямоугольника -
y- координата Y верхнего левого угла заданного прямоугольника -
width- ширина заданного прямоугольника -
height- новая высота заданного прямоугольника
reshape
@Deprecated public void reshape(int x, int y, int width, int height)
setBounds(int, int, int, int).- Parameters:
-
x- новая координата X для верхнего левого угла этого объекта -
y- новая координата Y для верхнего левого угла этого объекта -
width- новая ширина этого объекта -
height- новая высота этого объекта
getLocation
public Point getLocation()
Этот метод включён для полноты, для соответствия методу getLocation объекта Component.
- Returns:
- Точка, представляющая верхний левый угол этого объекта.
- Since:
- 1.1
- See Also:
setLocation
public void setLocation(Point p)
Этот метод включён для полноты, для соответствия методу setLocation объекта Component.
- Parameters:
-
p- Точка, определяющая новое местоположение этого объекта - Since:
- 1.1
- See Also:
setLocation
public void setLocation(int x, int y)
Этот метод включен для полноты, для соответствия методу setLocation объекта Component.
- Parameters:
-
x- координата X нового местоположения -
y- координата Y нового местоположения - Since:
- 1.1
- See Also:
move
@Deprecated public void move(int x, int y)
setLocation(int, int).- Parameters:
-
x- координата X нового местоположения -
y- координата Y нового местоположения
translate
public void translate(int dx, int dy)
- Parameters:
-
dx- расстояние перемещения по оси X -
dy- расстояние перемещения по оси Y - See Also:
getSize
public Dimension getSize()
Этот метод включен для полноты, для соответствия методу getSize объекта Component.
- Returns:
- объект Dimension, представляющий размер этого объекта.
- Since:
- 1.1
- See Also:
setSize
public void setSize(Dimension d)
Этот метод включён для полноты, для соответствия методу setSize объекта Component.
- Parameters:
-
d- новый размер для объекта - Since:
- 1.1
- See Also:
setSize
public void setSize(int width, int height)
Этот метод включён для полноты, для соответствия методу setSize объекта Component.
- Parameters:
-
width- новая ширина этого объекта -
height- новая высота этого объекта - Since:
- 1.1
- See Also:
resize
@Deprecated public void resize(int width, int height)
setSize(int, int).- Parameters:
-
width- новая ширина этого объекта -
height- новая высота этого объекта
contains
public boolean contains(Point p)
- Parameters:
-
p- точка для проверки - Returns:
-
true, если заданная точка находится внутри этого объекта;falseв противном случае. - Since:
- 1.1
contains
public boolean contains(int x, int y)
Rectangle точку в указанном месте (x,y).- Parameters:
-
x- заданная координата X -
y- заданная координата Y - Returns:
-
true, если точка(x,y)находится внутри этогоRectangle;falseв противном случае. - Since:
- 1.1
contains
public boolean contains(Rectangle r)
Rectangle содержит указанный Rectangle.- Parameters:
-
r- указанныйRectangle - Returns:
-
true, если указанныйRectangleполностью содержится внутри этогоRectangle;falseв противном случае - Since:
- 1.2
contains
public boolean contains(int X, int Y, int W, int H)
Rectangle содержит Rectangle в указанном месте (X,Y) с указанными размерами (W,H).- Parameters:
-
X- заданная координата X -
Y- заданная координата Y -
W- ширинаRectangle -
H- высотаRectangle - Returns:
-
true, еслиRectangle, заданный через(X, Y, W, H), полностью заключён внутри этогоRectangle;falseв противном случае. - Since:
- 1.1
inside
@Deprecated public boolean inside(int X, int Y)
contains(int, int).Rectangle точку в указанном месте (X,Y).- Parameters:
-
X- заданная координата X -
Y- заданная координата Y - Returns:
-
true, если точка(X,Y)находится внутри этогоRectangle;falseв противном случае.
intersects
public boolean intersects(Rectangle r)
Rectangle и указанный Rectangle. Два прямоугольника пересекаются, если их пересечение не пусто.- Parameters:
-
r- указанныйRectangle - Returns:
-
true, если указанныйRectangleи этотRectangleпересекаются;falseв противном случае.
intersection
public Rectangle intersection(Rectangle r)
Rectangle с указанным Rectangle. Возвращает новый Rectangle, представляющий пересечение двух прямоугольников. Если два прямоугольника не пересекаются, результат будет пустым прямоугольником.- Parameters:
-
r- указанныйRectangle - Returns:
- наибольший
Rectangle, содержащийся как в указанномRectangle, так и в этомRectangle; или, если прямоугольники не пересекаются, пустой прямоугольник.
union
public Rectangle union(Rectangle r)
Rectangle с указанным Rectangle. Возвращает новый Rectangle, представляющий объединение двух прямоугольников. Если у любого из Rectangle есть размер, меньший нуля, применяются правила для несуществующих прямоугольников. Если только у одного размер меньше нуля, результат будет копией другого Rectangle. Если у обоих размер меньше нуля, результат будет иметь по крайней мере один размер меньше нуля.
Если полученный Rectangle будет иметь размер, слишком большой для представления как int, результат будет иметь размер Integer.MAX_VALUE по этой размерности.
- Parameters:
-
r- указанныйRectangle - Returns:
- наименьший
Rectangle, содержащий как указанныйRectangle, так и этотRectangle.
add
public void add(int newx, int newy)
newx,newy, к границам этого Rectangle. Если у этого Rectangle есть какой-либо размер, меньший нуля, применяются правила для несуществующих прямоугольников. В этом случае новые границы этого Rectangle будут иметь координаты, равные заданным, а ширина и высота будут равны нулю.
После добавления точки вызов contains с добавленной точкой в качестве аргумента не обязательно вернёт true. Метод contains не возвращает true для точек на правом или нижнем краях Rectangle. Поэтому, если добавленная точка попадает на правый или нижний край увеличенного Rectangle, contains возвращает false для этой точки. Если указанная точка должна содержаться в новом Rectangle, вместо этого следует добавить прямоугольник 1x1:
r.add(new Rectangle(newx, newy, 1, 1));
- Parameters:
-
newx- координата X новой точки -
newy- координата Y новой точки
add
public void add(Point pt)
Point к границам этого Rectangle. Если у этого Rectangle есть какой-либо размер, меньший нуля, применяются правила для несуществующих прямоугольников. В этом случае новые границы этого Rectangle будут иметь координаты, равные координатам указанной Point, а ширина и высота будут равны нулю.
После добавления Point, вызов contains с добавленной Point в качестве аргумента не обязательно вернёт true. Метод contains не возвращает true для точек на правом или нижнем краях Rectangle. Таким образом, если добавленная Point попадает на правый или нижний край увеличенного Rectangle, contains возвращает false для этой Point. Если указанная точка должна содержаться в новом Rectangle, следует добавить прямоугольник 1x1:
r.add(new Rectangle(pt, new Dimension(1, 1)));
- Parameters:
-
pt- новаяPointдля добавления к этомуRectangle
add
public void add(Rectangle r)
Rectangle к этому Rectangle. Результат - объединение двух прямоугольников. Если у любого из Rectangle есть размер, меньший 0, результат будет иметь размеры другого Rectangle. Если у обоих Rectangle есть размер, меньший 0, результат будет иметь по крайней мере один размер, меньший 0.
Если у любого из Rectangle один или оба размера равны 0, результат по соответствующим осям с размерами 0 будет эквивалентен результату, полученному путём добавления соответствующей координаты начала к прямоугольнику результата по этой оси, аналогично работе метода add(Point), но не будет вносить дальнейший размер, выходящий за рамки этого.
Если полученный Rectangle будет иметь размер, слишком большой для представления как int, результат будет иметь размер Integer.MAX_VALUE по этой размерности.
- Parameters:
-
r- указанныйRectangle
grow
public void grow(int h, int v)
Rectangle как по горизонтали, так и по вертикали. Этот метод изменяет Rectangle, так что он становится h единиц больше по обеим сторонам слева и справа, и v единиц больше сверху и снизу.
Новый Rectangle имеет (x - h, y - v) в качестве верхнего левого угла, ширину (width + 2h) и высоту (height + 2v).
Если для h и v указаны отрицательные значения, размер Rectangle уменьшается соответственно. Метод grow проверит переполнение и недополнение целочисленных переменных, но не проверит, увеличиваются ли полученные значения width и height от отрицательного к неотрицательному или уменьшаются от неотрицательного к отрицательному.
- Parameters:
-
h- горизонтальное расширение -
v- вертикальное расширение
isEmpty
public boolean isEmpty()
RectangularShape пустым. Если RectangularShape пусто, оно не содержит области.- Определяется:
-
isEmptyв классеRectangularShape - Возвращает:
-
true, еслиRectangularShapeпусто;falseв противном случае. - С:
- 1.2
outcode
public int outcode(double x, double y)
Rectangle2D. Этот метод вычисляет бинарное ИЛИ соответствующих значений маски, указывающих для каждой стороны этого Rectangle2D, находятся ли заданные координаты по ту же сторону от ребра, что и остальная часть этого Rectangle2D.- Определяется:
-
outcodeв классеRectangle2D - Параметры:
-
x- заданная координата X -
y- заданная координата Y - Возвращает:
- логическое ИЛИ всех соответствующих кодов.
- С:
- 1.2
- См. также:
createIntersection
public Rectangle2D createIntersection(Rectangle2D r)
Rectangle2D, представляющий пересечение этого Rectangle2D с указанным Rectangle2D.- Определяется:
-
createIntersectionв классеRectangle2D - Параметры:
-
r-Rectangle2D, который нужно пересечь с этимRectangle2D - Возвращает:
- наибольший
Rectangle2D, содержащийся как в указанномRectangle2D, так и в этомRectangle2D. - С:
- 1.2
createUnion
public Rectangle2D createUnion(Rectangle2D r)
Rectangle2D, представляющий объединение этого Rectangle2D с указанным Rectangle2D.- Определяется:
-
createUnionв классеRectangle2D - Параметры:
-
r-Rectangle2D, который нужно объединить с этимRectangle2D - Возвращает:
- наименьший
Rectangle2D, содержащий как указанныйRectangle2D, так и этотRectangle2D. - С:
- 1.2
equals
public boolean equals(Object obj)
Результат равен true, если и только если аргумент не null и является объектом Rectangle, у которого есть тот же верхний левый угол, ширина и высота, что и у этого Rectangle.
- Переопределяет:
-
equalsв классеRectangle2D - Параметры:
-
obj-Objectдля сравнения с этимRectangle - Возвращает:
-
true, если объекты равны;falseв противном случае. - См. также:
toString
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/Rectangle.html
contains(int, int).