public abstract class Toolkit extends Object
Toolkit
class are used to bind the various components to particular native toolkit implementations. Many GUI events may be delivered to user asynchronously, if the opposite is not specified explicitly. As well as many GUI operations may be performed asynchronously. This fact means that if the state of a component is set, and then the state immediately queried, the returned value may not yet reflect the requested change. This behavior includes, but is not limited to:
ScrollPane.setScrollPosition
and then getScrollPosition
may return an incorrect value if the original request has not yet been processed. setVisible(true)
on a Window
, Frame
or Dialog
may occur asynchronously. setSize
, setBounds
or setLocation
on a Window
, Frame
or Dialog
are forwarded to the underlying window management system and may be ignored or modified. See Window
for more information. Most applications should not call any of the methods in this class directly. The methods defined by Toolkit
are the "glue" that joins the platform-independent classes in the java.awt
package with their counterparts in java.awt.peer
. Some methods defined by Toolkit
query the native operating system directly.
Modifier and Type | Field | Description |
---|---|---|
protected final Map |
desktopProperties |
The desktop properties. |
protected final PropertyChangeSupport |
desktopPropsSupport |
The desktop properties change support. |
Modifier | Constructor | Description |
---|---|---|
protected |
Constructs a Toolkit . |
Modifier and Type | Method | Description |
---|---|---|
void |
addAWTEventListener |
Adds an AWTEventListener to receive all AWTEvents dispatched system-wide that conform to the given eventMask . |
void |
addPropertyChangeListener |
Adds the specified property change listener for the named desktop property. |
boolean |
areExtraMouseButtonsEnabled() |
Reports whether events from extra mouse buttons are allowed to be processed and posted into EventQueue . |
abstract void |
beep() |
Emits an audio beep depending on native system settings and hardware capabilities. |
abstract int |
checkImage |
Indicates the construction status of a specified image that is being prepared for display. |
Cursor |
createCustomCursor |
Creates a new custom cursor object. |
<T extends DragGestureRecognizer> |
createDragGestureRecognizer |
Creates a concrete, platform dependent, subclass of the abstract DragGestureRecognizer class requested, and associates it with the DragSource, Component and DragGestureListener specified. |
Image |
createImage |
Creates an image which decodes the image stored in the specified byte array. |
abstract Image |
createImage |
Creates an image which decodes the image stored in the specified byte array, and at the specified offset and length. |
abstract Image |
createImage |
Creates an image with the specified image producer. |
abstract Image |
createImage |
Returns an image which gets pixel data from the specified file. |
abstract Image |
createImage |
Returns an image which gets pixel data from the specified URL. |
AWTEventListener[] |
getAWTEventListeners() |
Returns an array of all the AWTEventListener s registered on this toolkit. |
AWTEventListener[] |
getAWTEventListeners |
Returns an array of all the AWTEventListener s registered on this toolkit which listen to all of the event types specified in the eventMask argument. |
Dimension |
getBestCursorSize |
Returns the supported cursor dimension which is closest to the desired sizes. |
abstract ColorModel |
getColorModel() |
Determines the color model of this toolkit's screen. |
static Toolkit |
getDefaultToolkit() |
Gets the default toolkit. |
final Object |
getDesktopProperty |
Obtains a value for the specified desktop property. |
abstract String[] |
getFontList() |
Deprecated. |
abstract FontMetrics |
getFontMetrics |
Deprecated. As of JDK version 1.2, replaced by the Font method getLineMetrics . |
abstract Image |
getImage |
Returns an image which gets pixel data from the specified file, whose format can be either GIF, JPEG or PNG. |
abstract Image |
getImage |
Returns an image which gets pixel data from the specified URL. |
boolean |
getLockingKeyState |
Returns whether the given locking key on the keyboard is currently in its "on" state. |
int |
getMaximumCursorColors() |
Returns the maximum number of colors the Toolkit supports in a custom cursor palette. |
int |
getMenuShortcutKeyMask() |
Deprecated. It is recommended that extended modifier keys and getMenuShortcutKeyMaskEx() be used instead |
int |
getMenuShortcutKeyMaskEx() |
Determines which extended modifier key is the appropriate accelerator key for menu shortcuts. |
protected static Container |
getNativeContainer |
Give native peers the ability to query the native container given a native component (eg the direct parent may be lightweight). |
PrintJob |
getPrintJob |
Gets a PrintJob object which is the result of initiating a print operation on the toolkit's platform. |
abstract PrintJob |
getPrintJob |
Gets a PrintJob object which is the result of initiating a print operation on the toolkit's platform. |
static String |
getProperty |
Gets a property with the specified key and default. |
PropertyChangeListener[] |
getPropertyChangeListeners() |
Returns an array of all the property change listeners registered on this toolkit. |
PropertyChangeListener[] |
getPropertyChangeListeners |
Returns an array of all property change listeners associated with the specified name of a desktop property. |
Insets |
getScreenInsets |
Gets the insets of the screen. |
abstract int |
getScreenResolution() |
Returns the screen resolution in dots-per-inch. |
abstract Dimension |
getScreenSize() |
Gets the size of the screen. |
abstract Clipboard |
getSystemClipboard() |
Gets the singleton instance of the system Clipboard which interfaces with clipboard facilities provided by the native platform. |
final EventQueue |
getSystemEventQueue() |
Get the application's or applet's EventQueue instance. |
protected abstract EventQueue |
getSystemEventQueueImpl() |
Gets the application's or applet's EventQueue instance, without checking access. |
Clipboard |
getSystemSelection() |
Gets the singleton instance of the system selection as a Clipboard object. |
protected void |
initializeDesktopProperties() |
initializeDesktopProperties |
boolean |
isAlwaysOnTopSupported() |
Returns whether the always-on-top mode is supported by this toolkit. |
boolean |
isDynamicLayoutActive() |
Returns whether dynamic layout of Containers on resize is currently enabled on the underlying operating system and/or window manager. |
protected boolean |
isDynamicLayoutSet() |
Returns whether the layout of Containers is validated dynamically during resizing, or statically, after resizing is complete. |
boolean |
isFrameStateSupported |
Returns whether Toolkit supports this state for Frame s. |
abstract boolean |
isModalExclusionTypeSupported |
Returns whether the given modal exclusion type is supported by this toolkit. |
abstract boolean |
isModalityTypeSupported |
Returns whether the given modality type is supported by this toolkit. |
protected Object |
lazilyLoadDesktopProperty |
An opportunity to lazily evaluate desktop property values. |
protected void |
loadSystemColors |
Fills in the integer array that is supplied as an argument with the current system color values. |
abstract Map |
mapInputMethodHighlight |
Returns a map of visual attributes for the abstract level description of the given input method highlight, or null if no mapping is found. |
abstract boolean |
prepareImage |
Prepares an image for rendering. |
void |
removeAWTEventListener |
Removes an AWTEventListener from receiving dispatched AWTEvents. |
void |
removePropertyChangeListener |
Removes the specified property change listener for the named desktop property. |
protected final void |
setDesktopProperty |
Sets the named desktop property to the specified value and fires a property change event to notify any listeners that the value has changed. |
void |
setDynamicLayout |
Controls whether the layout of Containers is validated dynamically during resizing, or statically, after resizing is complete. |
void |
setLockingKeyState |
Sets the state of the given locking key on the keyboard. |
abstract void |
sync() |
Synchronizes this toolkit's graphics state. |
protected final Map<String,Object> desktopProperties
protected final PropertyChangeSupport desktopPropsSupport
protected Toolkit()
Toolkit
.protected void loadSystemColors(int[] systemColors) throws HeadlessException
systemColors
- an integer array.HeadlessException
- if GraphicsEnvironment.isHeadless() returns truepublic void setDynamicLayout(boolean dynamic) throws HeadlessException
isDynamicLayoutActive()
to detect if this feature enabled in this program and is supported by this operating system and/or window manager. Note that this feature is supported not on all platforms, and conversely, that this feature cannot be turned off on some platforms. On these platforms where dynamic layout during resizing is not supported (or is always supported), setting this property has no effect. Note that this feature can be set or unset as a property of the operating system or window manager on some platforms. On such platforms, the dynamic resize property must be set at the operating system or window manager level before this method can take effect. This method does not change support or settings of the underlying operating system or window manager. The OS/WM support can be queried using getDesktopProperty("awt.dynamicLayoutSupported") method.dynamic
- If true, Containers should re-layout their components as the Container is being resized. If false, the layout will be validated after resizing is completed.HeadlessException
- if GraphicsEnvironment.isHeadless() returns trueprotected boolean isDynamicLayoutSet() throws HeadlessException
HeadlessException
- if GraphicsEnvironment.isHeadless() returns truepublic boolean isDynamicLayoutActive() throws HeadlessException
setDynamicLayout(boolean)
may be used to programmatically enable or disable platform dynamic layout. Regardless of whether that toggling is supported, or whether true
or
false
is specified as an argument, or has never been called at all, this method will return the active current platform behavior and which will be followed by the JDK in determining layout policy during resizing. If dynamic layout is currently inactive then Containers re-layout their components when resizing is completed. As a result the Component.validate()
method will be invoked only once per resize. If dynamic layout is currently active then Containers re-layout their components on every native resize event and the validate()
method will be invoked each time. The OS/WM support can be queried using the getDesktopProperty("awt.dynamicLayoutSupported") method. This property will reflect the platform capability but is not sufficient to tell if it is presently enabled.
HeadlessException
- if the GraphicsEnvironment.isHeadless() method returns truepublic abstract Dimension getScreenSize() throws HeadlessException
GraphicsConfiguration
and GraphicsDevice
.HeadlessException
- if GraphicsEnvironment.isHeadless() returns truepublic abstract int getScreenResolution() throws HeadlessException
HeadlessException
- if GraphicsEnvironment.isHeadless() returns truepublic Insets getScreenInsets(GraphicsConfiguration gc) throws HeadlessException
gc
- a GraphicsConfiguration
HeadlessException
- if GraphicsEnvironment.isHeadless() returns truepublic abstract ColorModel getColorModel() throws HeadlessException
ColorModel
is an abstract class that encapsulates the ability to translate between the pixel values of an image and its red, green, blue, and alpha components.
This toolkit method is called by the getColorModel
method of the Component
class.
HeadlessException
- if GraphicsEnvironment.isHeadless() returns true@Deprecated public abstract String[] getFontList()
For 1.1, the following font names are deprecated (the replacement name follows):
The ZapfDingbats fontname is also deprecated in 1.1 but the characters are defined in Unicode starting at 0x2700, and as of 1.1 Java supports those characters.
@Deprecated public abstract FontMetrics getFontMetrics(Font font)
Font
method getLineMetrics
.font
- a fontpublic abstract void sync()
This method ensures that the display is up-to-date. It is useful for animation.
public static Toolkit getDefaultToolkit()
If a system property named "java.awt.headless"
is set to true
then the headless implementation of Toolkit
is used, otherwise the default platform-specific implementation of Toolkit
is used.
If this Toolkit is not a headless implementation and if they exist, service providers of AccessibilityProvider
will be loaded if specified by the system property javax.accessibility.assistive_technologies
.
An example of setting this property is to invoke Java with -Djavax.accessibility.assistive_technologies=MyServiceProvider
. In addition to MyServiceProvider other service providers can be specified using a comma separated list. Service providers are loaded after the AWT toolkit is created.
If the list of assistive technology providers as provided through system property "javax.accessibility.assistive_technologies
" is the empty string or contains only white space characters it is ignored. All other errors are handled via an AWTError exception.
The names specified in the assistive_technologies property are used to query each service provider implementation. If the requested name matches the name of the service provider, the AccessibilityProvider.activate()
method will be invoked to activate the matching service provider.
${user.home}/.accessibility.properties
${java.home}/conf/accessibility.properties
assistive_technologies=
property. A single provider or a comma separated list of providers can be specified.AWTError
- in case of an error loading assistive technologies.public abstract Image getImage(String filename)
Since the mechanism required to facilitate this sharing of Image
objects may continue to hold onto images that are no longer in use for an indefinite period of time, developers are encouraged to implement their own caching of images by using the createImage
variant wherever available. If the image data contained in the specified file changes, the Image
object returned from this method may still contain stale information which was loaded from the file after a prior call. Previously loaded image data can be manually discarded by calling the flush
method on the returned Image
.
This method first checks if there is a security manager installed. If so, the method calls the security manager's checkRead
method with the file specified to ensure that the access to the image is allowed.
filename
- the name of a file containing pixel data in a recognized file format.SecurityException
- if a security manager exists and its checkRead method doesn't allow the operation.public abstract Image getImage(URL url)
Since the mechanism required to facilitate this sharing of Image
objects may continue to hold onto images that are no longer in use for an indefinite period of time, developers are encouraged to implement their own caching of images by using the createImage
variant wherever available. If the image data stored at the specified URL changes, the Image
object returned from this method may still contain stale information which was fetched from the URL after a prior call. Previously loaded image data can be manually discarded by calling the flush
method on the returned Image
.
This method first checks if there is a security manager installed. If so, the method calls the security manager's checkPermission
method with the corresponding permission to ensure that the access to the image is allowed. If the connection to the specified URL requires either URLPermission
or SocketPermission
, then URLPermission
is used for security checks.
url
- the URL to use in fetching the pixel data.SecurityException
- if a security manager exists and its checkPermission method doesn't allow the operation.public abstract Image createImage(String filename)
This method first checks if there is a security manager installed. If so, the method calls the security manager's checkRead
method with the specified file to ensure that the image creation is allowed.
filename
- the name of a file containing pixel data in a recognized file format.SecurityException
- if a security manager exists and its checkRead method doesn't allow the operation.public abstract Image createImage(URL url)
This method first checks if there is a security manager installed. If so, the method calls the security manager's checkPermission
method with the corresponding permission to ensure that the image creation is allowed. If the connection to the specified URL requires either URLPermission
or SocketPermission
, then URLPermission
is used for security checks.
url
- the URL to use in fetching the pixel data.SecurityException
- if a security manager exists and its checkPermission method doesn't allow the operation.public abstract boolean prepareImage(Image image, int width, int height, ImageObserver observer)
If the values of the width and height arguments are both -1
, this method prepares the image for rendering on the default screen; otherwise, this method prepares an image for rendering on the default screen at the specified width and height.
The image data is downloaded asynchronously in another thread, and an appropriately scaled screen representation of the image is generated.
This method is called by components prepareImage
methods.
Information on the flags returned by this method can be found with the definition of the ImageObserver
interface.
image
- the image for which to prepare a screen representation.width
- the width of the desired screen representation, or -1
.height
- the height of the desired screen representation, or -1
.observer
- the ImageObserver
object to be notified as the image is being prepared.true
if the image has already been fully prepared; false
otherwise.public abstract int checkImage(Image image, int width, int height, ImageObserver observer)
If the values of the width and height arguments are both -1
, this method returns the construction status of a screen representation of the specified image in this toolkit. Otherwise, this method returns the construction status of a scaled representation of the image at the specified width and height.
This method does not cause the image to begin loading. An application must call prepareImage
to force the loading of an image.
This method is called by the component's checkImage
methods.
Information on the flags returned by this method can be found with the definition of the ImageObserver
interface.
image
- the image whose status is being checked.width
- the width of the scaled version whose status is being checked, or -1
.height
- the height of the scaled version whose status is being checked, or -1
.observer
- the ImageObserver
object to be notified as the image is being prepared.ImageObserver
flags for the image data that is currently available.public abstract Image createImage(ImageProducer producer)
producer
- the image producer to be used.public Image createImage(byte[] imagedata)
The data must be in some image format, such as GIF or JPEG, that is supported by this toolkit.
imagedata
- an array of bytes, representing image data in a supported image format.public abstract Image createImage(byte[] imagedata, int imageoffset, int imagelength)
imagedata
- an array of bytes, representing image data in a supported image format.imageoffset
- the offset of the beginning of the data in the array.imagelength
- the length of the data in the array.public abstract PrintJob getPrintJob(Frame frame, String jobtitle, Properties props)
PrintJob
object which is the result of initiating a print operation on the toolkit's platform. Each actual implementation of this method should first check if there is a security manager installed. If there is, the method should call the security manager's checkPrintJobAccess
method to ensure initiation of a print operation is allowed. If the default implementation of checkPrintJobAccess
is used (that is, that method is not overridden), then this results in a call to the security manager's checkPermission
method with a RuntimePermission("queuePrintJob")
permission.
frame
- the parent of the print dialog. May not be null.jobtitle
- the title of the PrintJob. A null title is equivalent to "".props
- a Properties object containing zero or more properties. Properties are not standardized and are not consistent across implementations. Because of this, PrintJobs which require job and page control should use the version of this function which takes JobAttributes and PageAttributes objects. This object may be updated to reflect the user's job choices on exit. May be null.PrintJob
object, or null
if the user cancelled the print job.NullPointerException
- if frame is nullSecurityException
- if this thread is not allowed to initiate a print job requestpublic PrintJob getPrintJob(Frame frame, String jobtitle, JobAttributes jobAttributes, PageAttributes pageAttributes)
PrintJob
object which is the result of initiating a print operation on the toolkit's platform. Each actual implementation of this method should first check if there is a security manager installed. If there is, the method should call the security manager's checkPrintJobAccess
method to ensure initiation of a print operation is allowed. If the default implementation of checkPrintJobAccess
is used (that is, that method is not overridden), then this results in a call to the security manager's checkPermission
method with a RuntimePermission("queuePrintJob")
permission.
frame
- the parent of the print dialog. May not be null.jobtitle
- the title of the PrintJob. A null title is equivalent to "".jobAttributes
- a set of job attributes which will control the PrintJob. The attributes will be updated to reflect the user's choices as outlined in the JobAttributes documentation. May be null.pageAttributes
- a set of page attributes which will control the PrintJob. The attributes will be applied to every page in the job. The attributes will be updated to reflect the user's choices as outlined in the PageAttributes documentation. May be null.PrintJob
object, or null
if the user cancelled the print job.NullPointerException
- if frame is nullIllegalArgumentException
- if pageAttributes specifies differing cross feed and feed resolutions. Also if this thread has access to the file system and jobAttributes specifies print to file, and the specified destination file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reason. However in the case of print to file, if a dialog is also requested to be displayed then the user will be given an opportunity to select a file and proceed with printing. The dialog will ensure that the selected output file is valid before returning from this method.SecurityException
- if this thread is not allowed to initiate a print job request, or if jobAttributes specifies print to file, and this thread is not allowed to access the file systempublic abstract void beep()
public abstract Clipboard getSystemClipboard() throws HeadlessException
In addition to any and all default formats text returned by the system Clipboard's getTransferData()
method is available in the following flavors:
java.awt.datatransfer.StringSelection
, if the requested flavor is DataFlavor.plainTextFlavor
, or an equivalent flavor, a Reader is returned. Note: The behavior of the system Clipboard's getTransferData()
method for DataFlavor.plainTextFlavor
, and equivalent DataFlavors, is inconsistent with the definition of DataFlavor.plainTextFlavor
. Because of this, support for DataFlavor.plainTextFlavor
, and equivalent flavors, is deprecated. Each actual implementation of this method should first check if there is a security manager installed. If there is, the method should call the security manager's checkPermission
method to check AWTPermission("accessClipboard")
.
HeadlessException
- if GraphicsEnvironment.isHeadless() returns truepublic Clipboard getSystemSelection() throws HeadlessException
Clipboard
object. This allows an application to read and modify the current, system-wide selection. An application is responsible for updating the system selection whenever the user selects text, using either the mouse or the keyboard. Typically, this is implemented by installing a FocusListener
on all Component
s which support text selection, and, between FOCUS_GAINED
and FOCUS_LOST
events delivered to that Component
, updating the system selection Clipboard
when the selection changes inside the Component
. Properly updating the system selection ensures that a Java application will interact correctly with native applications and other Java applications running simultaneously on the system. Note that java.awt.TextComponent
and javax.swing.text.JTextComponent
already adhere to this policy. When using these classes, and their subclasses, developers need not write any additional code.
Some platforms do not support a system selection Clipboard
. On those platforms, this method will return null
. In such a case, an application is absolved from its responsibility to update the system selection Clipboard
as described above.
Each actual implementation of this method should first check if there is a security manager installed. If there is, the method should call the security manager's checkPermission
method to check AWTPermission("accessClipboard")
.
Clipboard
, or null
if the native platform does not support a system selection Clipboard
HeadlessException
- if GraphicsEnvironment.isHeadless() returns true@Deprecated(since="10") public int getMenuShortcutKeyMask() throws HeadlessException
getMenuShortcutKeyMaskEx()
be used instead Menu shortcuts, which are embodied in the MenuShortcut
class, are handled by the MenuBar
class.
By default, this method returns Event.CTRL_MASK
. Toolkit implementations should override this method if the Control key isn't the correct key for accelerators.
Event
class that is used for menu shortcuts on this toolkit.HeadlessException
- if GraphicsEnvironment.isHeadless() returns truepublic int getMenuShortcutKeyMaskEx() throws HeadlessException
Menu shortcuts, which are embodied in the MenuShortcut
class, are handled by the MenuBar
class.
By default, this method returns InputEvent.CTRL_DOWN_MASK
. Toolkit implementations should override this method if the Control key isn't the correct key for accelerators.
InputEvent
class that is used for menu shortcuts on this toolkitHeadlessException
- if GraphicsEnvironment.isHeadless() returns truepublic boolean getLockingKeyState(int keyCode) throws UnsupportedOperationException
VK_CAPS_LOCK
, VK_NUM_LOCK
, VK_SCROLL_LOCK
, and VK_KANA_LOCK
.keyCode
- the key codetrue
if the given key is currently in its "on" state; otherwise false
IllegalArgumentException
- if keyCode
is not one of the valid key codesUnsupportedOperationException
- if the host system doesn't allow getting the state of this key programmatically, or if the keyboard doesn't have this keyHeadlessException
- if GraphicsEnvironment.isHeadless() returns truepublic void setLockingKeyState(int keyCode, boolean on) throws UnsupportedOperationException
VK_CAPS_LOCK
, VK_NUM_LOCK
, VK_SCROLL_LOCK
, and VK_KANA_LOCK
. Depending on the platform, setting the state of a locking key may involve event processing and therefore may not be immediately observable through getLockingKeyState.
keyCode
- the key codeon
- the state of the keyIllegalArgumentException
- if keyCode
is not one of the valid key codesUnsupportedOperationException
- if the host system doesn't allow setting the state of this key programmatically, or if the keyboard doesn't have this keyHeadlessException
- if GraphicsEnvironment.isHeadless() returns trueprotected static Container getNativeContainer(Component c)
c
- the component to fetch the container forpublic Cursor createCustomCursor(Image cursor, Point hotSpot, String name) throws IndexOutOfBoundsException, HeadlessException
Note that multi-frame images are invalid and may cause this method to hang.
cursor
- the image to display when the cursor is activatedhotSpot
- the X and Y of the large cursor's hot spot; the hotSpot values must be less than the Dimension returned by getBestCursorSize
name
- a localized description of the cursor, for Java Accessibility useIndexOutOfBoundsException
- if the hotSpot values are outside the bounds of the cursorHeadlessException
- if GraphicsEnvironment.isHeadless() returns truepublic Dimension getBestCursorSize(int preferredWidth, int preferredHeight) throws HeadlessException
Note: if an image is used whose dimensions don't match a supported size (as returned by this method), the Toolkit implementation will attempt to resize the image to a supported size. Since converting low-resolution images is difficult, no guarantees are made as to the quality of a cursor image which isn't a supported size. It is therefore recommended that this method be called and an appropriate image used so no image conversion is made.
preferredWidth
- the preferred cursor width the component would like to use.preferredHeight
- the preferred cursor height the component would like to use.HeadlessException
- if GraphicsEnvironment.isHeadless() returns truepublic int getMaximumCursorColors() throws HeadlessException
Note: if an image is used which has more colors in its palette than the supported maximum, the Toolkit implementation will attempt to flatten the palette to the maximum. Since converting low-resolution images is difficult, no guarantees are made as to the quality of a cursor image which has more colors than the system supports. It is therefore recommended that this method be called and an appropriate image used so no image conversion is made.
HeadlessException
- if GraphicsEnvironment.isHeadless() returns truepublic boolean isFrameStateSupported(int state) throws HeadlessException
Frame
s. This method tells whether the UI concept of, say, maximization or iconification is supported. It will always return false for "compound" states like Frame.ICONIFIED|Frame.MAXIMIZED_VERT
. In other words, the rule of thumb is that only queries with a single frame state constant as an argument are meaningful. Note that supporting a given concept is a platform- dependent feature. Due to native limitations the Toolkit object may report a particular state as supported, however at the same time the Toolkit object will be unable to apply the state to a given frame. This circumstance has two following consequences:
false
for the present method actually indicates that the given state is not supported. If the method returns true
the given state may still be unsupported and/or unavailable for a particular frame. WindowEvent.getNewState()
method of the WindowEvent
received through the WindowStateListener
, rather than assuming that the state given to the setExtendedState()
method will be definitely applied. For more information see the documentation for the Frame.setExtendedState(int)
method. state
- one of named frame state constants.true
is this frame state is supported by this Toolkit implementation, false
otherwise.HeadlessException
- if GraphicsEnvironment.isHeadless()
returns true
.public static String getProperty(String key, String defaultValue)
key
- the keydefaultValue
- the default valuepublic final EventQueue getSystemEventQueue()
If there is a security manager then its checkPermission
method is called to check AWTPermission("accessEventQueue")
.
EventQueue
objectSecurityException
- if a security manager is set and it denies access to the EventQueue
protected abstract EventQueue getSystemEventQueueImpl()
EventQueue
instance, without checking access. For security reasons, this can only be called from a Toolkit
subclass.EventQueue
objectpublic <T extends DragGestureRecognizer> T createDragGestureRecognizer(Class<T> abstractRecognizerClass, DragSource ds, Component c, int srcActions, DragGestureListener dgl)
T
- the type of DragGestureRecognizer to createabstractRecognizerClass
- The abstract class of the required recognizerds
- The DragSourcec
- The Component target for the DragGestureRecognizersrcActions
- The actions permitted for the gesturedgl
- The DragGestureListenerpublic final Object getDesktopProperty(String propertyName)
propertyName
- the property nameprotected final void setDesktopProperty(String name, Object newValue)
name
- the property namenewValue
- the new property valueprotected Object lazilyLoadDesktopProperty(String name)
name
- the nameprotected void initializeDesktopProperties()
public void addPropertyChangeListener(String name, PropertyChangeListener pcl)
PropertyChangeListenerProxy
object is added, its property name is ignored, and the wrapped listener is added. If name
is null
or pcl
is null
, no exception is thrown and no action is performed.name
- The name of the property to listen forpcl
- The property change listenerpublic void removePropertyChangeListener(String name, PropertyChangeListener pcl)
PropertyChangeListenerProxy
object is removed, its property name is ignored, and the wrapped listener is removed. If name
is null
or pcl
is null
, no exception is thrown and no action is performed.name
- The name of the property to removepcl
- The property change listenerpublic PropertyChangeListener[] getPropertyChangeListeners()
PropertyChangeListenerProxy
objects that associate listeners with the names of desktop properties.PropertyChangeListener
objects wrapped in java.beans.PropertyChangeListenerProxy
objects or an empty array if no listeners are addedpublic PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
propertyName
- the named propertyPropertyChangeListener
objects associated with the specified name of a desktop property or an empty array if no such listeners are addedpublic boolean isAlwaysOnTopSupported()
Window.isAlwaysOnTopSupported()
.true
, if current toolkit supports the always-on-top mode, otherwise returns false
public abstract boolean isModalityTypeSupported(Dialog.ModalityType modalityType)
Dialog.ModalityType.MODELESS
is used instead.modalityType
- modality type to be checked for support by this toolkittrue
, if current toolkit supports given modality type, false
otherwisepublic abstract boolean isModalExclusionTypeSupported(Dialog.ModalExclusionType modalExclusionType)
Dialog.ModalExclusionType.NO_EXCLUDE
is used instead.modalExclusionType
- modal exclusion type to be checked for support by this toolkittrue
, if current toolkit supports given modal exclusion type, false
otherwisepublic void addAWTEventListener(AWTEventListener listener, long eventMask)
eventMask
. First, if there is a security manager, its checkPermission
method is called with an AWTPermission("listenToAllAWTEvents")
permission. This may result in a SecurityException.
eventMask
is a bitmask of event types to receive. It is constructed by bitwise OR-ing together the event masks defined in AWTEvent
.
Note: event listener use is not recommended for normal application use, but are intended solely to support special purpose facilities including support for accessibility, event record/playback, and diagnostic tracing. If listener is null, no exception is thrown and no action is performed.
listener
- the event listener.eventMask
- the bitmask of event types to receiveSecurityException
- if a security manager exists and its checkPermission
method doesn't allow the operation.public void removeAWTEventListener(AWTEventListener listener)
First, if there is a security manager, its checkPermission
method is called with an AWTPermission("listenToAllAWTEvents")
permission. This may result in a SecurityException.
Note: event listener use is not recommended for normal application use, but are intended solely to support special purpose facilities including support for accessibility, event record/playback, and diagnostic tracing. If listener is null, no exception is thrown and no action is performed.
listener
- the event listener.SecurityException
- if a security manager exists and its checkPermission
method doesn't allow the operation.public AWTEventListener[] getAWTEventListeners()
AWTEventListener
s registered on this toolkit. If there is a security manager, its checkPermission
method is called with an AWTPermission("listenToAllAWTEvents")
permission. This may result in a SecurityException. Listeners can be returned within AWTEventListenerProxy
objects, which also contain the event mask for the given listener. Note that listener objects added multiple times appear only once in the returned array.AWTEventListener
s or an empty array if no listeners are currently registeredSecurityException
- if a security manager exists and its checkPermission
method doesn't allow the operation.public AWTEventListener[] getAWTEventListeners(long eventMask)
AWTEventListener
s registered on this toolkit which listen to all of the event types specified in the eventMask
argument. If there is a security manager, its checkPermission
method is called with an AWTPermission("listenToAllAWTEvents")
permission. This may result in a SecurityException. Listeners can be returned within AWTEventListenerProxy
objects, which also contain the event mask for the given listener. Note that listener objects added multiple times appear only once in the returned array.eventMask
- the bitmask of event types to listen forAWTEventListener
s registered on this toolkit for the specified event types, or an empty array if no such listeners are currently registeredSecurityException
- if a security manager exists and its checkPermission
method doesn't allow the operation.public abstract Map<TextAttribute,?> mapInputMethodHighlight(InputMethodHighlight highlight) throws HeadlessException
highlight
- input method highlightnull
HeadlessException
- if GraphicsEnvironment.isHeadless
returns truepublic boolean areExtraMouseButtonsEnabled() throws HeadlessException
EventQueue
. sun.awt.enableExtraMouseButtons
property before the Toolkit
class initialization. This setting could be done on the application startup by the following command: java -Dsun.awt.enableExtraMouseButtons=false ApplicationAlternatively, the property could be set in the application by using the following code:
System.setProperty("sun.awt.enableExtraMouseButtons", "true");before the
Toolkit
class initialization. If not set by the time of the Toolkit
class initialization, this property will be initialized with true
. Changing this value after the Toolkit
class initialization will have no effect.true
if events from extra mouse buttons are allowed to be processed and posted; false
otherwiseHeadlessException
- if GraphicsEnvironment.isHeadless() returns true
© 1993, 2023, 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://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/java/awt/Toolkit.html
GraphicsEnvironment.getAvailableFontFamilyNames()