A default implementation of Caret. The caret is rendered as a vertical line in the color specified by the CaretColor property of the associated JTextComponent. It can blink at the rate specified by the BlinkRate property.

This implementation expects two sources of asynchronous notification. The timer thread fires asynchronously, and causes the caret to simply repaint the most recent bounding box. The caret also tracks change as the document is modified. Typically this will happen on the event dispatch thread as a result of some mouse or keyboard event. The caret behavior on both synchronous and asynchronous documents updates is controlled by UpdatePolicy property. The repaint of the new caret location will occur on the event thread in any case, as calls to modelToView are only safe on the event thread.

The caret acts as a mouse and focus listener on the text component it has been installed in, and defines the caret semantics based upon those events. The listener methods can be reimplemented to change the semantics. By default, the first mouse button will be used to set focus and caret position. Dragging the mouse pointer with the first mouse button will sweep out a selection that is contiguous in the model. If the associated text component is editable, the caret will become visible when focus is gained, and invisible when focus is lost.

The Highlighter bound to the associated text component is used to render the selection by default. Selection appearance can be customized by supplying a painter to use for the highlights. By default a painter is used that will render a solid color as specified in the associated text component in the SelectionColor property. This can easily be changed by reimplementing the getSelectionHighlighter method.

A customized caret appearance can be achieved by reimplementing the paint method. If the paint method is changed, the damage method should also be reimplemented to cause a repaint for the area needed to render the caret. The caret extends the Rectangle class which is used to hold the bounding box for where the caret was last rendered. This enables the caret to repaint in a thread-safe manner when the caret moves without making a call to modelToView which is unstable between model updates and view repair (i.e. the order of delivery to DocumentListeners is not guaranteed).

The magic caret position is set to null when the caret position changes. A timer is used to determine the new location (after the caret change). When the timer fires, if the magic caret position is still null it is reset to the current caret position. Any actions that change the caret position and want the magic caret position to remain the same, must remember the magic caret position, change the cursor, and then set the magic caret position to its original value. This has the benefit that only actions that want the magic caret position to persist (such as open/down) need to know about it.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see java.beans.XMLEncoder .

@author
Timothy Prinzing
@version
1.140 08/09/05
See Also
Constructs a default caret.
Indicates that the caret position is to be always updated accordingly to the document changes regardless whether the document updates are performed on the Event Dispatching Thread or not.
@since
1.5
The height of the Rectangle.
@serial
Indicates that the caret should remain at the same absolute position in the document regardless of any document updates, except when the document length becomes less than the current caret position due to removal. In that case the caret position is adjusted to the end of the document.
@since
1.5
The bitmask that indicates that a point lies below this Rectangle2D.
@since
1.2
The bitmask that indicates that a point lies to the left of this Rectangle2D.
@since
1.2
The bitmask that indicates that a point lies to the right of this Rectangle2D.
@since
1.2
The bitmask that indicates that a point lies above this Rectangle2D.
@since
1.2
Indicates that the caret position is to be updated only when document changes are performed on the Event Dispatching Thread.
@since
1.5
The width of the Rectangle.
@serial
@since
JDK1.0.
The x coordinate of the Rectangle.
The y coordinate of the Rectangle.
Adds a point, specified by the double precision arguments newx and newy, to this Rectangle2D. The resulting Rectangle2D is the smallest Rectangle2D that contains both the original Rectangle2D and the specified point.

After adding a point, a call to contains with the added point as an argument does not necessarily return true. The contains method does not return true for points on the right or bottom edges of a rectangle. Therefore, if the added point falls on the left or bottom edge of the enlarged rectangle, contains returns false for that point.

Parameters
newx, newythe coordinates of the new point
@since
JDK1.0
Adds a point, specified by the integer arguments newx and newy, to this Rectangle. The resulting Rectangle is the smallest Rectangle that contains both the original Rectangle and the specified point.

After adding a point, a call to contains with the added point as an argument does not necessarily return true. The contains method does not return true for points on the right or bottom edges of a Rectangle. Therefore, if the added point falls on the right or bottom edge of the enlarged Rectangle, contains returns false for that point.

Parameters
newxthe x coordinate of the new point
newythe y coordinate of the new point
Adds the specified Point to this Rectangle. The resulting Rectangle is the smallest Rectangle that contains both the original Rectangle and the specified Point.

After adding a Point, a call to contains with the added Point as an argument does not necessarily return true. The contains method does not return true for points on the right or bottom edges of a Rectangle. Therefore if the added Point falls on the right or bottom edge of the enlarged Rectangle, contains returns false for that Point.

Parameters
ptthe new Point to add to this Rectangle
Adds the Point2D object pt to this Rectangle2D. The resulting Rectangle2D is the smallest Rectangle2D that contains both the original Rectangle2D and the specified Point2D.

After adding a point, a call to contains with the added point as an argument does not necessarily return true. The contains method does not return true for points on the right or bottom edges of a rectangle. Therefore, if the added point falls on the left or bottom edge of the enlarged rectangle, contains returns false for that point.

Parameters
ptthe new Point2D to add to this Rectangle2D.
@since
JDK1.0
Adds a Rectangle to this Rectangle. The resulting Rectangle is the union of the two rectangles.
Parameters
rthe specified Rectangle
Adds a Rectangle2D object to this Rectangle2D. The resulting Rectangle2D is the union of the two Rectangle2D objects.
Parameters
rthe Rectangle2D to add to this Rectangle2D.
@since
JDK1.0
Adds a listener to track whenever the caret position has been changed.
Parameters
lthe change listener
Creates a new object of the same class and with the same contents as this object.
Return
a clone of this instance.
Throws
OutOfMemoryErrorif there is not enough memory.
@since
1.2
Tests if a specified coordinate is inside the boundary of this Rectangle2D.
Parameters
x, ythe coordinates to test
Return
true if the specified coordinates are inside the boundary of this Rectangle2D; false otherwise.
@since
1.2
Tests if the interior of this Rectangle2D entirely contains the specified set of rectangular coordinates.
Parameters
x, ythe coordinates of the upper left corner of the specified set of rectangular coordinates
wthe width of the specified set of rectangular coordinates
hthe height of the specified set of rectangular coordinates
Return
true if this Rectangle2D entirely contains specified set of rectangular coordinates; false otherwise.
@since
1.2
Checks whether or not this Rectangle contains the point at the specified location (xy).
Parameters
xthe specified x coordinate
ythe specified y coordinate
Return
true if the point (xy) is inside this Rectangle; false otherwise.
@since
JDK1.1
Checks whether this Rectangle entirely contains the Rectangle at the specified location (XY) with the specified dimensions (WH).
Parameters
Xthe specified x coordinate
Ythe specified y coordinate
Wthe width of the Rectangle
Hthe height of the Rectangle
Return
true if the Rectangle specified by (XYWH) is entirely enclosed inside this Rectangle; false otherwise.
@since
JDK1.1
Checks whether or not this Rectangle contains the specified Point.
Parameters
pthe Point to test
Return
true if the Point (xy) is inside this Rectangle; false otherwise.
@since
JDK1.1
Tests if a specified Point2D is inside the boundary of the Shape.
Parameters
pthe specified Point2D
Return
true if the Point2D is inside the Shape object's boundary; false otherwise.
Checks whether or not this Rectangle entirely contains the specified Rectangle.
Parameters
rthe specified Rectangle
Return
true if the Rectangle is contained entirely inside this Rectangle; false otherwise
@since
JDK1.2
Tests if the interior of the Shape entirely contains the specified Rectangle2D.
Parameters
rthe specified Rectangle2D
Return
true if the Shape entirely contains the specified Rectangle2D; false otherwise.
Returns a new Rectangle2D object representing the intersection of this Rectangle with the specified Rectangle2D.
Parameters
rthe Rectangle2D to be intersected with this Rectangle
Return
the largest Rectangle2D contained in both the specified Rectangle2D and in this Rectangle.
@since
1.2
Returns a new Rectangle2D object representing the union of this Rectangle with the specified Rectangle2D.
Parameters
rthe Rectangle2D to be combined with this Rectangle
Return
the smallest Rectangle2D containing both the specified Rectangle2D and this Rectangle.
@since
1.2
Called when the UI is being removed from the interface of a JTextComponent. This is used to unregister any listeners that were attached.
Parameters
cthe JTextComponent
Compares this object to the specified object. The superclass behavior of comparing rectangles is not desired, so this is changed to the Object behavior.
Parameters
objthe object to compare this font with
Return
true if the objects are equal; false otherwise
Invoked when a component gains the keyboard focus.
Invoked when a component loses the keyboard focus.
Gets the blink rate of the caret. This determines if and how fast the caret blinks, commonly used as one way to attract attention to the caret.
Return
the delay in milliseconds >= 0. If this is zero the caret will not blink.
Gets the bounding Rectangle of this Rectangle.

This method is included for completeness, to parallel the getBounds method of Component .

Return
a new Rectangle, equal to the bounding Rectangle for this Rectangle.
@since
JDK1.1
Return the high precision bounding box of this rectangle.
@since
1.2
Returns the X coordinate of the center of the framing rectangle of the Shape in double precision.
Return
the x coordinate of the framing rectangle of the Shape object's center.
Returns the Y coordinate of the center of the framing rectangle of the Shape in double precision.
Return
the y coordinate of the framing rectangle of the Shape object's center.
Returns an array of all the change listeners registered on this caret.
Return
all of this caret's ChangeListeners or an empty array if no change listeners are currently registered
@since
1.4
Returns the runtime class of an object. That Class object is the object that is locked by static synchronized methods of the represented class.
Return
The java.lang.Class object that represents the runtime class of the object. The result is of type {@code Class} where X is the erasure of the static type of the expression on which getClass is called.
Fetches the current position of the caret.
Return
the position >= 0
Returns the framing Rectangle2D that defines the overall shape of this object.
Return
a Rectangle2D, specified in double coordinates.
Returns the height of the bounding Rectangle in double precision.
Return
the height of the bounding Rectangle.
Returns an array of all the objects currently registered as FooListeners upon this caret. FooListeners are registered using the addFooListener method.

You can specify the listenerType argument with a class literal, such as FooListener.class. For example, you can query a DefaultCaret c for its change listeners with the following code:

ChangeListener[] cls = (ChangeListener[])(c.getListeners(ChangeListener.class));
If no such listeners exist, this method returns an empty array.
Parameters
listenerTypethe type of listeners requested; this parameter should specify an interface that descends from java.util.EventListener
Return
an array of all objects registered as FooListeners on this component, or an empty array if no such listeners have been added
Throws
ClassCastExceptionif listenerType doesn't specify a class or interface that implements java.util.EventListener
@since
1.3
Returns the location of this Rectangle.

This method is included for completeness, to parallel the getLocation method of Component.

Return
the Point that is the top-left corner of this Rectangle.
@since
JDK1.1
Gets the current caret visual location.
Return
the visual position.
Fetches the current position of the mark. If there is a selection, the mark will not be the same as the dot.
Return
the position >= 0
Returns the largest X coordinate of the framing rectangle of the Shape in double precision.
Return
the largest x coordinate of the framing rectangle of the Shape.
Returns the largest Y coordinate of the framing rectangle of the Shape in double precision.
Return
the largest y coordinate of the framing rectangle of the Shape.
Returns the smallest X coordinate of the framing rectangle of the Shape in double precision.
Return
the smallest x coordinate of the framing rectangle of the Shape.
Returns the smallest Y coordinate of the framing rectangle of the Shape in double precision.
Return
the smallest y coordinate of the framing rectangle of the Shape.
Returns an iteration object that defines the boundary of this Rectangle2D. The iterator for this class is multi-threaded safe, which means that this Rectangle2D class guarantees that modifications to the geometry of this Rectangle2D object do not affect any iterations of that geometry that are already in process.
Parameters
atan optional AffineTransform to be applied to the coordinates as they are returned in the iteration, or null if untransformed coordinates are desired
Return
the PathIterator object that returns the geometry of the outline of this Rectangle2D, one segment at a time.
@since
1.2
Returns an iteration object that defines the boundary of the flattened Rectangle2D. Since rectangles are already flat, the flatness parameter is ignored. The iterator for this class is multi-threaded safe, which means that this Rectangle2D class guarantees that modifications to the geometry of this Rectangle2D object do not affect any iterations of that geometry that are already in process.
Parameters
atan optional AffineTransform to be applied to the coordinates as they are returned in the iteration, or null if untransformed coordinates are desired
flatnessthe maximum distance that the line segments used to approximate the curved segments are allowed to deviate from any point on the original curve. Since rectangles are already flat, the flatness parameter is ignored.
Return
the PathIterator object that returns the geometry of the outline of this Rectangle2D, one segment at a time.
@since
1.2
Gets the size of this Rectangle, represented by the returned Dimension.

This method is included for completeness, to parallel the getSize method of Component.

Return
a Dimension, representing the size of this Rectangle.
@since
JDK1.1
Gets the caret movement policy on document updates.
Return
one of the following values : UPDATE_WHEN_ON_EDT, NEVER_UPDATE, ALWAYS_UPDATE
@since
1.5
Returns the width of the bounding Rectangle in double precision.
Return
the width of the bounding Rectangle.
Returns the X coordinate of the bounding Rectangle in double precision.
Return
the x coordinate of the bounding Rectangle.
Returns the Y coordinate of the bounding Rectangle in double precision.
Return
the y coordinate of the bounding Rectangle.
Resizes the Rectangle both horizontally and vertically.

This method modifies the Rectangle so that it is h units larger on both the left and right side, and v units larger at both the top and bottom.

The new Rectangle has (x - h, y - v) as its top-left corner, a width of width + 2h, and a height of height + 2v.

If negative values are supplied for h and v, the size of the Rectangle decreases accordingly. The grow method does not check whether the resulting values of width and height are non-negative.

Parameters
hthe horizontal expansion
vthe vertical expansion
Returns the hashcode for this Rectangle2D.
Return
the hashcode for this Rectangle2D.
Checks whether or not this Rectangle contains the point at the specified location (XY).
Parameters
Xthe specified x coordinate
Ythe specified y coordinate
Return
true if the point (XY) is inside this Rectangle; false otherwise.
@deprecated
As of JDK version 1.1, replaced by contains(int, int).
Called when the UI is being installed into the interface of a JTextComponent. This can be used to gain access to the model that is being navigated by the implementation of this interface.
Parameters
cthe JTextComponent
Intersects the pair of specified source Rectangle2D objects and puts the result into the specified destination Rectangle2D object. One of the source rectangles can also be the destination to avoid creating a third Rectangle2D object, but in this case the original points of this source rectangle will be overwritten by this method.
Parameters
src1the first of a pair of Rectangle2D objects to be intersected with each other
src2the second of a pair of Rectangle2D objects to be intersected with each other
destthe Rectangle2D that holds the results of the intersection of src1 and src2
@since
1.2
Computes the intersection of this Rectangle with the specified Rectangle. Returns a new Rectangle that represents the intersection of the two rectangles. If the two rectangles do not intersect, the result will be an empty rectangle.
Parameters
rthe specified Rectangle
Return
the largest Rectangle contained in both the specified Rectangle and in this Rectangle; or if the rectangles do not intersect, an empty rectangle.
Tests if the interior of this Rectangle2D intersects the interior of a specified set of rectangular coordinates.
Parameters
x, ythe coordinates of the upper left corner of the specified set of rectangular coordinates
wthe width of the specified set of rectangular coordinates
hthe height of the specified set of rectangular coordinates
Return
true if this Rectangle2D intersects the interior of a specified set of rectangular coordinates; false otherwise.
@since
1.2
Determines whether or not this Rectangle and the specified Rectangle intersect. Two rectangles intersect if their intersection is nonempty.
Parameters
rthe specified Rectangle
Return
true if the specified Rectangle and this Rectangle intersect; false otherwise.
Tests if the interior of theShape intersects the interior of a specified Rectangle2D.
Parameters
rthe specified Rectangle2D
Return
true if the Shape and the specified Rectangle2D intersect each other; false otherwise.
Tests if the specified line segment intersects the interior of this Rectangle2D.
Parameters
x1, y1the first endpoint of the specified line segment
x2, y2the second endpoint of the specified line segment
Return
true if the specified line segment intersects the interior of this Rectangle2D; false otherwise.
@since
1.2
Tests if the specified line segment intersects the interior of this Rectangle2D.
Parameters
lthe specified {@link Line2D} to test for intersection with the interior of this Rectangle2D
Return
true if the specified Line2D intersects the interior of this Rectangle2D; false otherwise.
@since
1.2
Determines if the caret is currently active.

This method returns whether or not the Caret is currently in a blinking state. It does not provide information as to whether it is currently blinked on or off. To determine if the caret is currently painted use the isVisible method.

Return
true if active else false
@since
1.5
See Also
Determines whether or not this Rectangle is empty. A Rectangle is empty if its width or its height is less than or equal to zero.
Return
true if this Rectangle is empty; false otherwise.
Determines if the selection is currently visible.
Return
true if the caret is visible else false
Determines if the caret is currently visible.
Return
true if the caret is visible else false
Invoked when the mouse button has been clicked (pressed and released) on a component.
Invoked when a mouse button is pressed on a component and then dragged. MOUSE_DRAGGED events will continue to be delivered to the component where the drag originated until the mouse button is released (regardless of whether the mouse position is within the bounds of the component).

Due to platform-dependent Drag&Drop implementations, MOUSE_DRAGGED events may not be delivered during a native Drag&Drop operation.

Invoked when the mouse enters a component.
Invoked when the mouse exits a component.
Invoked when the mouse cursor has been moved onto a component but no buttons have been pushed.
Invoked when a mouse button has been pressed on a component.
Invoked when a mouse button has been released on a component.
Moves this Rectangle to the specified location.

Parameters
xthe x coordinate of the new location
ythe y coordinate of the new location
@deprecated
As of JDK version 1.1, replaced by setLocation(int, int).
Moves the caret position (dot) to some other position, leaving behind the mark. This is useful for making selections.
Parameters
dotthe new position to move the caret to >= 0
Wakes up a single thread that is waiting on this object's monitor. If any threads are waiting on this object, one of them is chosen to be awakened. The choice is arbitrary and occurs at the discretion of the implementation. A thread waits on an object's monitor by calling one of the wait methods.

The awakened thread will not be able to proceed until the current thread relinquishes the lock on this object. The awakened thread will compete in the usual manner with any other threads that might be actively competing to synchronize on this object; for example, the awakened thread enjoys no reliable privilege or disadvantage in being the next thread to lock this object.

This method should only be called by a thread that is the owner of this object's monitor. A thread becomes the owner of the object's monitor in one of three ways:

  • By executing a synchronized instance method of that object.
  • By executing the body of a synchronized statement that synchronizes on the object.
  • For objects of type Class, by executing a synchronized static method of that class.

Only one thread at a time can own an object's monitor.

Throws
IllegalMonitorStateExceptionif the current thread is not the owner of this object's monitor.
Wakes up all threads that are waiting on this object's monitor. A thread waits on an object's monitor by calling one of the wait methods.

The awakened threads will not be able to proceed until the current thread relinquishes the lock on this object. The awakened threads will compete in the usual manner with any other threads that might be actively competing to synchronize on this object; for example, the awakened threads enjoy no reliable privilege or disadvantage in being the next thread to lock this object.

This method should only be called by a thread that is the owner of this object's monitor. See the notify method for a description of the ways in which a thread can become the owner of a monitor.

Throws
IllegalMonitorStateExceptionif the current thread is not the owner of this object's monitor.
Determines where the specified coordinates lie with respect to this Rectangle. This method computes a binary OR of the appropriate mask values indicating, for each side of this Rectangle, whether or not the specified coordinates are on the same side of the edge as the rest of this Rectangle.
Parameters
xthe specified x coordinate
ythe specified y coordinate
Return
the logical OR of all appropriate out codes.
@since
1.2
Determines where the specified Point2D lies with respect to this Rectangle2D. This method computes a binary OR of the appropriate mask values indicating, for each side of this Rectangle2D, whether or not the specified Point2D is on the same side of the edge as the rest of this Rectangle2D.
Parameters
pthe specified Point2D
Return
the logical OR of all appropriate out codes.
@since
1.2
Renders the caret.
Parameters
gthe graphics context
Removes a listener that was tracking caret position changes.
Parameters
lthe change listener
Sets the bounding Rectangle of this Rectangle to the specified x, y, width, and height.

Parameters
xthe new x coordinate for the top-left corner of this Rectangle
ythe new y coordinate for the top-left corner of this Rectangle
widththe new width for this Rectangle
heightthe new height for this Rectangle
@deprecated
As of JDK version 1.1, replaced by setBounds(int, int, int, int).
Sets the size of this Rectangle to the specified width and height.

Parameters
widththe new width for this Rectangle
heightthe new height for this Rectangle
@deprecated
As of JDK version 1.1, replaced by setSize(int, int).
Sets the blink rate of the caret. This determines if and how fast the caret blinks, commonly used as one way to attract attention to the caret.
Parameters
ratethe delay in milliseconds >= 0. If this is zero the caret will not blink.
Sets the bounding Rectangle of this Rectangle to the specified x, y, width, and height.

This method is included for completeness, to parallel the setBounds method of Component.

Parameters
xthe new x coordinate for the top-left corner of this Rectangle
ythe new y coordinate for the top-left corner of this Rectangle
widththe new width for this Rectangle
heightthe new height for this Rectangle
@since
JDK1.1
Sets the bounding Rectangle of this Rectangle to match the specified Rectangle.

This method is included for completeness, to parallel the setBounds method of Component.

Parameters
rthe specified Rectangle
@since
JDK1.1
Sets the caret position to some position. This causes the mark to become the same as the dot, effectively setting the selection range to zero.
Parameters
dotthe new position to set the caret to >= 0
Sets the location and size of the outer bounds of this Rectangle2D to the specified rectangular values.
Parameters
x, ythe coordinates to which to set the location of the upper left corner of the outer bounds of this Rectangle2D
wthe value to use to set the width of the outer bounds of this Rectangle2D
hthe value to use to set the height of the outer bounds of this Rectangle2D
@since
1.2
Sets the location and size of the framing rectangle of this Shape to the specified Point2D and Dimension2D , respectively. The framing rectangle is used by the subclasses of RectangularShape to define their geometry.
Parameters
locthe specified Point2D
sizethe specified Dimension2D
See Also
Sets the framing rectangle of this Shape to be the specified Rectangle2D. The framing rectangle is used by the subclasses of RectangularShape to define their geometry.
Parameters
rthe specified Rectangle2D
See Also
Sets the framing rectangle of this Shape based on the specified center point coordinates and corner point coordinates. The framing rectangle is used by the subclasses of RectangularShape to define their geometry.
Parameters
centerX, centerYthe center point coordinates
cornerX, cornerYthe corner point coordinates
Sets the framing rectangle of this Shape based on a specified center Point2D and corner Point2D. The framing rectangle is used by the subclasses of RectangularShape to define their geometry.
Parameters
centerthe specified center Point2D
cornerthe specified corner Point2D
Sets the diagonal of the framing rectangle of this Shape based on the two specified coordinates. The framing rectangle is used by the subclasses of RectangularShape to define their geometry.
Parameters
x1, y1the first specified coordinates
x2, y2the second specified coordinates
Sets the diagonal of the framing rectangle of this Shape based on two specified Point2D objects. The framing rectangle is used by the subclasses of RectangularShape to define their geometry.
Parameters
p1, p2the two specified Point2D objects
Moves this Rectangle to the specified location.

This method is included for completeness, to parallel the setLocation method of Component.

Parameters
xthe x coordinate of the new location
ythe y coordinate of the new location
@since
JDK1.1
Moves this Rectangle to the specified location.

This method is included for completeness, to parallel the setLocation method of Component.

Parameters
pthe Point specifying the new location for this Rectangle
@since
JDK1.1
Set the current caret visual location. This can be used when moving between lines that have uneven end positions (such as when caret up or down actions occur). If text flows left-to-right or right-to-left the x-coordinate will indicate the desired navigation location for vertical movement. If the text flow is top-to-bottom, the y-coordinate will indicate the desired navigation location for horizontal movement.
Parameters
pthe Point to use for the saved position. This can be null to indicate there is no visual location.
Sets the bounds of this Rectangle to the specified x, y, width, and height. This method is included for completeness, to parallel the setBounds method of Component.
Parameters
xthe x coordinate of the upper-left corner of the specified rectangle
ythe y coordinate of the upper-left corner of the specified rectangle
widththe new width for the Dimension object
heightthe new height for the Dimension object
Sets this Rectangle2D to be the same as the specified Rectangle2D.
Parameters
rthe specified Rectangle2D
@since
1.2
Sets the visibility of the selection
Parameters
vtrue if the caret should be shown, and false if the caret should be hidden
Sets the size of this Rectangle to match the specified Dimension.

This method is included for completeness, to parallel the setSize method of Component.

Parameters
dthe new size for the Dimension object
@since
JDK1.1
Sets the size of this Rectangle to the specified width and height.

This method is included for completeness, to parallel the setSize method of Component.

Parameters
widththe new width for this Rectangle
heightthe new height for this Rectangle
@since
JDK1.1
Sets the caret movement policy on the document updates. Normally the caret updates its absolute position within the document on insertions occurred before or at the caret position and on removals before the caret position. 'Absolute position' means here the position relative to the start of the document. For example if a character is typed within editable text component it is inserted at the caret position and the caret moves to the next absolute position within the document due to insertion and if BACKSPACE is typed then caret decreases its absolute position due to removal of a character before it. Sometimes it may be useful to turn off the caret position updates so that the caret stays at the same absolute position within the document position regardless of any document updates.

The following update policies are allowed:

  • NEVER_UPDATE: the caret stays at the same absolute position in the document regardless of any document updates, except when document length becomes less than the current caret position due to removal. In that case caret position is adjusted to the end of the document. The caret doesn't try to keep itself visible by scrolling the associated view when using this policy.
  • ALWAYS_UPDATE: the caret always tracks document changes. For regular changes it increases its position if an insertion occurs before or at its current position, and decreases position if a removal occurs before its current position. For undo/redo updates it is always moved to the position where update occurred. The caret also tries to keep itself visible by calling adjustVisibility method.
  • UPDATE_WHEN_ON_EDT: acts like ALWAYS_UPDATE if the document updates are performed on the Event Dispatching Thread and like NEVER_UPDATE if updates are performed on other thread.

The default property value is UPDATE_WHEN_ON_EDT.

Parameters
policyone of the following values : UPDATE_WHEN_ON_EDT, NEVER_UPDATE, ALWAYS_UPDATE
Throws
IllegalArgumentExceptionif invalid value is passed
@since
1.5
Sets the visibility of the caret.
Parameters
vtrue if the caret should be shown, and false if the caret should be hidden
Translates this Rectangle the indicated distance, to the right along the x coordinate axis, and downward along the y coordinate axis.
Parameters
xthe distance to move this Rectangle along the x axis
ythe distance to move this Rectangle along the y axis
Computes the union of this Rectangle with the specified Rectangle. Returns a new Rectangle that represents the union of the two rectangles
Parameters
rthe specified Rectangle
Return
the smallest Rectangle containing both the specified Rectangle and this Rectangle.
Unions the pair of source Rectangle2D objects and puts the result into the specified destination Rectangle2D object. One of the source rectangles can also be the destination to avoid creating a third Rectangle2D object, but in this case the original points of this source rectangle will be overwritten by this method.
Parameters
src1the first of a pair of Rectangle2D objects to be combined with each other
src2the second of a pair of Rectangle2D objects to be combined with each other
destthe Rectangle2D that holds the results of the union of src1 and src2
@since
1.2
Causes current thread to wait until another thread invokes the method or the method for this object. In other words, this method behaves exactly as if it simply performs the call wait(0).

The current thread must own this object's monitor. The thread releases ownership of this monitor and waits until another thread notifies threads waiting on this object's monitor to wake up either through a call to the notify method or the notifyAll method. The thread then waits until it can re-obtain ownership of the monitor and resumes execution.

As in the one argument version, interrupts and spurious wakeups are possible, and this method should always be used in a loop:

     synchronized (obj) {
         while (<condition does not hold>)
             obj.wait();
         ... // Perform action appropriate to condition
     }
 
This method should only be called by a thread that is the owner of this object's monitor. See the notify method for a description of the ways in which a thread can become the owner of a monitor.
Throws
IllegalMonitorStateExceptionif the current thread is not the owner of the object's monitor.
InterruptedExceptionif another thread interrupted the current thread before or while the current thread was waiting for a notification. The interrupted status of the current thread is cleared when this exception is thrown.
Causes current thread to wait until either another thread invokes the method or the method for this object, or a specified amount of time has elapsed.

The current thread must own this object's monitor.

This method causes the current thread (call it T) to place itself in the wait set for this object and then to relinquish any and all synchronization claims on this object. Thread T becomes disabled for thread scheduling purposes and lies dormant until one of four things happens:

  • Some other thread invokes the notify method for this object and thread T happens to be arbitrarily chosen as the thread to be awakened.
  • Some other thread invokes the notifyAll method for this object.
  • Some other thread interrupts thread T.
  • The specified amount of real time has elapsed, more or less. If timeout is zero, however, then real time is not taken into consideration and the thread simply waits until notified.
The thread T is then removed from the wait set for this object and re-enabled for thread scheduling. It then competes in the usual manner with other threads for the right to synchronize on the object; once it has gained control of the object, all its synchronization claims on the object are restored to the status quo ante - that is, to the situation as of the time that the wait method was invoked. Thread T then returns from the invocation of the wait method. Thus, on return from the wait method, the synchronization state of the object and of thread T is exactly as it was when the wait method was invoked.

A thread can also wake up without being notified, interrupted, or timing out, a so-called spurious wakeup. While this will rarely occur in practice, applications must guard against it by testing for the condition that should have caused the thread to be awakened, and continuing to wait if the condition is not satisfied. In other words, waits should always occur in loops, like this one:

     synchronized (obj) {
         while (<condition does not hold>)
             obj.wait(timeout);
         ... // Perform action appropriate to condition
     }
 
(For more information on this topic, see Section 3.2.3 in Doug Lea's "Concurrent Programming in Java (Second Edition)" (Addison-Wesley, 2000), or Item 50 in Joshua Bloch's "Effective Java Programming Language Guide" (Addison-Wesley, 2001).

If the current thread is interrupted by another thread while it is waiting, then an InterruptedException is thrown. This exception is not thrown until the lock status of this object has been restored as described above.

Note that the wait method, as it places the current thread into the wait set for this object, unlocks only this object; any other objects on which the current thread may be synchronized remain locked while the thread waits.

This method should only be called by a thread that is the owner of this object's monitor. See the notify method for a description of the ways in which a thread can become the owner of a monitor.

Parameters
timeoutthe maximum time to wait in milliseconds.
Throws
IllegalArgumentExceptionif the value of timeout is negative.
IllegalMonitorStateExceptionif the current thread is not the owner of the object's monitor.
InterruptedExceptionif another thread interrupted the current thread before or while the current thread was waiting for a notification. The interrupted status of the current thread is cleared when this exception is thrown.
Causes current thread to wait until another thread invokes the method or the method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.

This method is similar to the wait method of one argument, but it allows finer control over the amount of time to wait for a notification before giving up. The amount of real time, measured in nanoseconds, is given by:

 1000000*timeout+nanos

In all other respects, this method does the same thing as the method of one argument. In particular, wait(0, 0) means the same thing as wait(0).

The current thread must own this object's monitor. The thread releases ownership of this monitor and waits until either of the following two conditions has occurred:

  • Another thread notifies threads waiting on this object's monitor to wake up either through a call to the notify method or the notifyAll method.
  • The timeout period, specified by timeout milliseconds plus nanos nanoseconds arguments, has elapsed.

The thread then waits until it can re-obtain ownership of the monitor and resumes execution.

As in the one argument version, interrupts and spurious wakeups are possible, and this method should always be used in a loop:

     synchronized (obj) {
         while (<condition does not hold>)
             obj.wait(timeout, nanos);
         ... // Perform action appropriate to condition
     }
 
This method should only be called by a thread that is the owner of this object's monitor. See the notify method for a description of the ways in which a thread can become the owner of a monitor.
Parameters
timeoutthe maximum time to wait in milliseconds.
nanosadditional time, in nanoseconds range 0-999999.
Throws
IllegalArgumentExceptionif the value of timeout is negative or the value of nanos is not in the range 0-999999.
IllegalMonitorStateExceptionif the current thread is not the owner of this object's monitor.
InterruptedExceptionif another thread interrupted the current thread before or while the current thread was waiting for a notification. The interrupted status of the current thread is cleared when this exception is thrown.