W3cubDocs

/OpenJDK 21

Class LayerUI<V extends Component>

java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.LayerUI<V>
Type Parameters:
V - one of the super types of JLayer's view component
All Implemented Interfaces:
Serializable
public class LayerUI<V extends Component> extends ComponentUI implements Serializable
The base class for all JLayer's UI delegates.

paint(java.awt.Graphics, javax.swing.JComponent) method performs the painting of the JLayer and eventDispatched(AWTEvent, JLayer) method is notified about any AWTEvents which have been generated by a JLayer or any of its subcomponents.

The LayerUI differs from the UI delegates of the other components, because it is LookAndFeel independent and is not updated by default when the system LookAndFeel is changed.

The subclasses of LayerUI can either be stateless and shareable by multiple JLayers or not shareable.

Since:
1.7
See Also:

Constructor Summary

Constructor Description
LayerUI()
Constructs a LayerUI.

Method Summary

Modifier and Type Method Description
void addPropertyChangeListener(PropertyChangeListener listener)
Adds a PropertyChangeListener to the listener list.
void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
Adds a PropertyChangeListener to the listener list for a specific property.
void applyPropertyChange(PropertyChangeEvent evt, JLayer<? extends V> l)
Notifies the LayerUI when any of its property are changed and enables updating every JLayer this LayerUI instance is set to.
void doLayout(JLayer<? extends V> l)
Causes the passed instance of JLayer to lay out its components.
void eventDispatched(AWTEvent e, JLayer<? extends V> l)
Processes AWTEvents for JLayer and all its descendants to this LayerUI instance.
protected void firePropertyChange(String propertyName, Object oldValue, Object newValue)
Support for reporting bound property changes for Object properties.
int getBaseline(JComponent c, int width, int height)
If the JLayer's view component is not null, this calls the view's getBaseline() method.
Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
If the JLayer's view component is not null, this returns the result of the view's getBaselineResizeBehavior() method.
Dimension getMaximumSize(JComponent c)
If the JLayer's view component is not null, this returns the result of the view's getMaximumSize() method.
Dimension getMinimumSize(JComponent c)
If the JLayer's view component is not null, this returns the result of the view's getMinimalSize() method.
Dimension getPreferredSize(JComponent c)
If the JLayer's view component is not null, this returns the result of the view's getPreferredSize() method.
PropertyChangeListener[] getPropertyChangeListeners()
Returns an array of all the property change listeners registered on this component.
PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
Returns an array of all the listeners which have been associated with the named property.
boolean imageUpdate(Image img, int infoflags, int x, int y, int w, int h, JLayer<? extends V> l)
Delegates its functionality to the default implementation of the JLayer.imageUpdate method which is inherited from JLayer's base classes.
void installUI(JComponent c)
Configures the JLayer this LayerUI is set to.
void paint(Graphics g, JComponent c)
Paints the specified component.
void paintImmediately(int x, int y, int width, int height, JLayer<? extends V> l)
Paints the specified region in the JLayer this LayerUI is set to, immediately.
protected void processComponentEvent(ComponentEvent e, JLayer<? extends V> l)
Processes component events occurring on the JLayer or any of its subcomponents.
protected void processFocusEvent(FocusEvent e, JLayer<? extends V> l)
Processes focus events occurring on the JLayer or any of its subcomponents.
protected void processHierarchyBoundsEvent(HierarchyEvent e, JLayer<? extends V> l)
Processes hierarchy bounds event occurring on the JLayer or any of its subcomponents.
protected void processHierarchyEvent(HierarchyEvent e, JLayer<? extends V> l)
Processes hierarchy event occurring on the JLayer or any of its subcomponents.
protected void processInputMethodEvent(InputMethodEvent e, JLayer<? extends V> l)
Processes input event occurring on the JLayer or any of its subcomponents.
protected void processKeyEvent(KeyEvent e, JLayer<? extends V> l)
Processes key events occurring on the JLayer or any of its subcomponents.
protected void processMouseEvent(MouseEvent e, JLayer<? extends V> l)
Processes mouse events occurring on the JLayer or any of its subcomponents.
protected void processMouseMotionEvent(MouseEvent e, JLayer<? extends V> l)
Processes mouse motion event occurring on the JLayer or any of its subcomponents.
protected void processMouseWheelEvent(MouseWheelEvent e, JLayer<? extends V> l)
Processes mouse wheel event occurring on the JLayer or any of its subcomponents.
void removePropertyChangeListener(PropertyChangeListener listener)
Removes a PropertyChangeListener from the listener list.
void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
Removes a PropertyChangeListener from the listener list for a specific property.
void uninstallUI(JComponent c)
Reverses the configuration which was previously set in the installUI(JComponent) method.
void updateUI(JLayer<? extends V> l)
Invoked when JLayer.updateUI() is called by the JLayer this LayerUI is set to.

Methods declared in class javax.swing.plaf.ComponentUI

contains, createUI, getAccessibleChild, getAccessibleChildrenCount, update

Methods declared in class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

LayerUI

public LayerUI()
Constructs a LayerUI.

Method Details

paint

public void paint(Graphics g, JComponent c)
Paints the specified component. Subclasses should override this method and use the specified Graphics object to render the content of the component.

The default implementation paints the passed component as is.

Overrides:
paint in class ComponentUI
Parameters:
g - the Graphics context in which to paint
c - the component being painted
See Also:

eventDispatched

public void eventDispatched(AWTEvent e, JLayer<? extends V> l)
Processes AWTEvents for JLayer and all its descendants to this LayerUI instance.

To enable the AWTEvents of a particular type, you call JLayer.setLayerEventMask(long) in installUI(javax.swing.JComponent) and set the layer event mask to 0 in uninstallUI(javax.swing.JComponent) after that. By default this method calls the appropriate process<event type>Event method for the given class of event.

Note: Events are processed only for displayable JLayers.

Parameters:
e - the event to be dispatched
l - the layer this LayerUI is set to
See Also:

processComponentEvent

protected void processComponentEvent(ComponentEvent e, JLayer<? extends V> l)
Processes component events occurring on the JLayer or any of its subcomponents.

This method is not called unless component events are enabled for the JLayer objects, this LayerUI is set to. Component events are enabled in the overridden installUI(javax.swing.JComponent) method and should be disabled in the uninstallUI(javax.swing.JComponent) method after that.

 public void installUI(JComponent c) {
    super.installUI(c);
    JLayer l = (JLayer) c;
    l.setLayerEventMask(AWTEvent.COMPONENT_EVENT_MASK);
 }

 public void uninstallUI(JComponent c) {
     super.uninstallUI(c);
     JLayer l = (JLayer) c;
     l.setLayerEventMask(0);
 }
 
Parameters:
e - the ComponentEvent to be processed
l - the layer this LayerUI instance is set to
See Also:

processFocusEvent

protected void processFocusEvent(FocusEvent e, JLayer<? extends V> l)
Processes focus events occurring on the JLayer or any of its subcomponents.

This method is not called unless focus events are enabled for the JLayer objects, this LayerUI is set to. Focus events are enabled in the overridden installUI(javax.swing.JComponent) method and should be disabled in the uninstallUI(javax.swing.JComponent) method after that.

 public void installUI(JComponent c) {
    super.installUI(c);
    JLayer l = (JLayer) c;
    l.setLayerEventMask(AWTEvent.FOCUS_EVENT_MASK);
 }

 public void uninstallUI(JComponent c) {
     super.uninstallUI(c);
     JLayer l = (JLayer) c;
     l.setLayerEventMask(0);
 }
 
Parameters:
e - the FocusEvent to be processed
l - the layer this LayerUI instance is set to
See Also:

processKeyEvent

protected void processKeyEvent(KeyEvent e, JLayer<? extends V> l)
Processes key events occurring on the JLayer or any of its subcomponents.

This method is not called unless key events are enabled for the JLayer objects, this LayerUI is set to. Key events are enabled in the overridden installUI(javax.swing.JComponent) method and should be disabled in the uninstallUI(javax.swing.JComponent) method after that.

 public void installUI(JComponent c) {
    super.installUI(c);
    JLayer l = (JLayer) c;
    l.setLayerEventMask(AWTEvent.KEY_EVENT_MASK);
 }

 public void uninstallUI(JComponent c) {
     super.uninstallUI(c);
     JLayer l = (JLayer) c;
     l.setLayerEventMask(0);
 }
 
Parameters:
e - the KeyEvent to be processed
l - the layer this LayerUI instance is set to
See Also:

processMouseEvent

protected void processMouseEvent(MouseEvent e, JLayer<? extends V> l)
Processes mouse events occurring on the JLayer or any of its subcomponents.

This method is not called unless mouse events are enabled for the JLayer objects, this LayerUI is set to. Mouse events are enabled in the overridden installUI(javax.swing.JComponent) method and should be disabled in the uninstallUI(javax.swing.JComponent) method after that.

 public void installUI(JComponent c) {
    super.installUI(c);
    JLayer l = (JLayer) c;
    l.setLayerEventMask(AWTEvent.MOUSE_EVENT_MASK);
 }

 public void uninstallUI(JComponent c) {
     super.uninstallUI(c);
     JLayer l = (JLayer) c;
     l.setLayerEventMask(0);
 }
 
Parameters:
e - the MouseEvent to be processed
l - the layer this LayerUI instance is set to
See Also:

processMouseMotionEvent

protected void processMouseMotionEvent(MouseEvent e, JLayer<? extends V> l)
Processes mouse motion event occurring on the JLayer or any of its subcomponents.

This method is not called unless mouse motion events are enabled for the JLayer objects, this LayerUI is set to. Mouse motion events are enabled in the overridden installUI(javax.swing.JComponent) method and should be disabled in the uninstallUI(javax.swing.JComponent) method after that.

 public void installUI(JComponent c) {
    super.installUI(c);
    JLayer l = (JLayer) c;
    l.setLayerEventMask(AWTEvent.MOUSE_MOTION_EVENT_MASK);
 }

 public void uninstallUI(JComponent c) {
     super.uninstallUI(c);
     JLayer l = (JLayer) c;
     l.setLayerEventMask(0);
 }
 
Parameters:
e - the MouseEvent to be processed
l - the layer this LayerUI instance is set to
See Also:

processMouseWheelEvent

protected void processMouseWheelEvent(MouseWheelEvent e, JLayer<? extends V> l)
Processes mouse wheel event occurring on the JLayer or any of its subcomponents.

This method is not called unless mouse wheel events are enabled for the JLayer objects, this LayerUI is set to. Mouse wheel events are enabled in the overridden installUI(javax.swing.JComponent) method and should be disabled in the uninstallUI(javax.swing.JComponent) method after that.

 public void installUI(JComponent c) {
    super.installUI(c);
    JLayer l = (JLayer) c;
    l.setLayerEventMask(AWTEvent.MOUSE_WHEEL_EVENT_MASK);
 }

 public void uninstallUI(JComponent c) {
     super.uninstallUI(c);
     JLayer l = (JLayer) c;
     l.setLayerEventMask(0);
 }
 
Parameters:
e - the MouseEvent to be processed
l - the layer this LayerUI instance is set to
See Also:

processInputMethodEvent

protected void processInputMethodEvent(InputMethodEvent e, JLayer<? extends V> l)
Processes input event occurring on the JLayer or any of its subcomponents.

This method is not called unless input events are enabled for the JLayer objects, this LayerUI is set to. Input events are enabled in the overridden installUI(javax.swing.JComponent) method and should be disabled in the uninstallUI(javax.swing.JComponent) method after that.

 public void installUI(JComponent c) {
    super.installUI(c);
    JLayer l = (JLayer) c;
    l.setLayerEventMask(AWTEvent.INPUT_METHOD_EVENT_MASK);
 }

 public void uninstallUI(JComponent c) {
     super.uninstallUI(c);
     JLayer l = (JLayer) c;
     l.setLayerEventMask(0);
 }
 
Parameters:
e - the InputMethodEvent to be processed
l - the layer this LayerUI instance is set to
See Also:

processHierarchyEvent

protected void processHierarchyEvent(HierarchyEvent e, JLayer<? extends V> l)
Processes hierarchy event occurring on the JLayer or any of its subcomponents.

This method is not called unless hierarchy events are enabled for the JLayer objects, this LayerUI is set to. Hierarchy events are enabled in the overridden installUI(javax.swing.JComponent) method and should be disabled in the uninstallUI(javax.swing.JComponent) method after that.

 public void installUI(JComponent c) {
    super.installUI(c);
    JLayer l = (JLayer) c;
    l.setLayerEventMask(AWTEvent.HIERARCHY_EVENT_MASK);
 }

 public void uninstallUI(JComponent c) {
     super.uninstallUI(c);
     JLayer l = (JLayer) c;
     l.setLayerEventMask(0);
 }
 
Parameters:
e - the HierarchyEvent to be processed
l - the layer this LayerUI instance is set to
See Also:

processHierarchyBoundsEvent

protected void processHierarchyBoundsEvent(HierarchyEvent e, JLayer<? extends V> l)
Processes hierarchy bounds event occurring on the JLayer or any of its subcomponents.

This method is not called unless hierarchy bounds events are enabled for the JLayer objects, this LayerUI is set to. Hierarchy bounds events are enabled in the overridden installUI(javax.swing.JComponent) method and should be disabled in the uninstallUI(javax.swing.JComponent) method after that.

 public void installUI(JComponent c) {
    super.installUI(c);
    JLayer l = (JLayer) c;
    l.setLayerEventMask(AWTEvent.HIERARCHY_BOUNDS_EVENT_MASK);
 }

 public void uninstallUI(JComponent c) {
     super.uninstallUI(c);
     JLayer l = (JLayer) c;
     l.setLayerEventMask(0);
 }
 
Parameters:
e - the HierarchyEvent to be processed
l - the layer this LayerUI instance is set to
See Also:

updateUI

public void updateUI(JLayer<? extends V> l)
Invoked when JLayer.updateUI() is called by the JLayer this LayerUI is set to.
Parameters:
l - the JLayer which UI is updated

installUI

public void installUI(JComponent c)
Configures the JLayer this LayerUI is set to. The default implementation registers the passed JLayer component as a PropertyChangeListener for the property changes of this LayerUI.
Overrides:
installUI in class ComponentUI
Parameters:
c - the JLayer component where this UI delegate is being installed
See Also:

uninstallUI

public void uninstallUI(JComponent c)
Reverses the configuration which was previously set in the installUI(JComponent) method. The default implementation unregisters the passed JLayer component as a PropertyChangeListener for the property changes of this LayerUI.
Overrides:
uninstallUI in class ComponentUI
Parameters:
c - the component from which this UI delegate is being removed.
See Also:

addPropertyChangeListener

public void addPropertyChangeListener(PropertyChangeListener listener)
Adds a PropertyChangeListener to the listener list. The listener is registered for all bound properties of this class.

If listener is null, no exception is thrown and no action is performed.

Parameters:
listener - the property change listener to be added
See Also:

removePropertyChangeListener

public void removePropertyChangeListener(PropertyChangeListener listener)
Removes a PropertyChangeListener from the listener list. This method should be used to remove PropertyChangeListeners that were registered for all bound properties of this class.

If listener is null, no exception is thrown and no action is performed.

Parameters:
listener - the PropertyChangeListener to be removed
See Also:

getPropertyChangeListeners

public PropertyChangeListener[] getPropertyChangeListeners()
Returns an array of all the property change listeners registered on this component.
Returns:
all of this ui's PropertyChangeListeners or an empty array if no property change listeners are currently registered
See Also:

addPropertyChangeListener

public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
Adds a PropertyChangeListener to the listener list for a specific property.

If propertyName or listener is null, no exception is thrown and no action is taken.

Parameters:
propertyName - one of the property names listed above
listener - the property change listener to be added
See Also:

removePropertyChangeListener

public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
Removes a PropertyChangeListener from the listener list for a specific property. This method should be used to remove PropertyChangeListeners that were registered for a specific bound property.

If propertyName or listener is null, no exception is thrown and no action is taken.

Parameters:
propertyName - a valid property name
listener - the PropertyChangeListener to be removed
See Also:

getPropertyChangeListeners

public PropertyChangeListener[] getPropertyChangeListeners(String propertyName)
Returns an array of all the listeners which have been associated with the named property.
Parameters:
propertyName - The name of the property being listened to
Returns:
all of the PropertyChangeListeners associated with the named property; if no such listeners have been added or if propertyName is null, an empty array is returned
See Also:

firePropertyChange

protected void firePropertyChange(String propertyName, Object oldValue, Object newValue)
Support for reporting bound property changes for Object properties. This method can be called when a bound property has changed and it will send the appropriate PropertyChangeEvent to any registered PropertyChangeListeners.
Parameters:
propertyName - the property whose value has changed
oldValue - the property's previous value
newValue - the property's new value

applyPropertyChange

public void applyPropertyChange(PropertyChangeEvent evt, JLayer<? extends V> l)
Notifies the LayerUI when any of its property are changed and enables updating every JLayer this LayerUI instance is set to.
Parameters:
evt - the PropertyChangeEvent generated by this LayerUI
l - the JLayer this LayerUI is set to

getBaseline

public int getBaseline(JComponent c, int width, int height)
If the JLayer's view component is not null, this calls the view's getBaseline() method. Otherwise, the default implementation is called.
Overrides:
getBaseline in class ComponentUI
Parameters:
c - JLayer to return baseline resize behavior for
width - the width to get the baseline for
height - the height to get the baseline for
Returns:
baseline or a value < 0 indicating there is no reasonable baseline
See Also:

getBaselineResizeBehavior

public Component.BaselineResizeBehavior getBaselineResizeBehavior(JComponent c)
If the JLayer's view component is not null, this returns the result of the view's getBaselineResizeBehavior() method. Otherwise, the default implementation is called.
Overrides:
getBaselineResizeBehavior in class ComponentUI
Parameters:
c - JLayer to return baseline resize behavior for
Returns:
an enum indicating how the baseline changes as the component size changes
See Also:

doLayout

public void doLayout(JLayer<? extends V> l)
Causes the passed instance of JLayer to lay out its components.
Parameters:
l - the JLayer component where this UI delegate is being installed

getPreferredSize

public Dimension getPreferredSize(JComponent c)
If the JLayer's view component is not null, this returns the result of the view's getPreferredSize() method. Otherwise, the default implementation is used.
Overrides:
getPreferredSize in class ComponentUI
Parameters:
c - JLayer to return preferred size for
Returns:
preferred size for the passed JLayer
See Also:

getMinimumSize

public Dimension getMinimumSize(JComponent c)
If the JLayer's view component is not null, this returns the result of the view's getMinimalSize() method. Otherwise, the default implementation is used.
Overrides:
getMinimumSize in class ComponentUI
Parameters:
c - JLayer to return preferred size for
Returns:
minimal size for the passed JLayer
See Also:

getMaximumSize

public Dimension getMaximumSize(JComponent c)
If the JLayer's view component is not null, this returns the result of the view's getMaximumSize() method. Otherwise, the default implementation is used.
Overrides:
getMaximumSize in class ComponentUI
Parameters:
c - JLayer to return preferred size for
Returns:
maximum size for the passed JLayer
See Also:

paintImmediately

public void paintImmediately(int x, int y, int width, int height, JLayer<? extends V> l)
Paints the specified region in the JLayer this LayerUI is set to, immediately.

This method is to be overridden when the dirty region needs to be changed. The default implementation delegates its functionality to JComponent.paintImmediately(int, int, int, int).

Parameters:
x - the x value of the region to be painted
y - the y value of the region to be painted
width - the width of the region to be painted
height - the height of the region to be painted
l - a JLayer component
See Also:

imageUpdate

public boolean imageUpdate(Image img, int infoflags, int x, int y, int w, int h, JLayer<? extends V> l)
Delegates its functionality to the default implementation of the JLayer.imageUpdate method which is inherited from JLayer's base classes.

This method is to be overridden instead of JLayer.imageUpdate.

Note: This method is usually called not on the Event Dispatching Thread.

Parameters:
img - the image being observed
infoflags - see imageUpdate for information
x - the x coordinate
y - the y coordinate
w - the width
h - the height
l - a JLayer component
Returns:
false if the infoflags indicate that the image is completely loaded; true otherwise

© 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/javax/swing/plaf/LayerUI.html