com.explodingpixels.widgets

## Class WindowUtils

- java.lang.Object
- - com.explodingpixels.widgets.WindowUtils

-     public class WindowUtils
      extends Object

  Utility methods for dealing with `Window`s.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `WindowUtils()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static WindowFocusListener` | `createAndInstallRepaintWindowFocusListener(Window window)` Deprecated. use the more targeted `installJComponentRepainterOnWindowFocusChanged(JComponent)` method.
    `static void` | `installJComponentRepainterOnWindowFocusChanged(JComponent component)` Installs a listener on the given `JComponent`'s parent `Window` that repaints the given component when the parent window's focused state changes.
    `static void` | `installWeakWindowFocusListener(JComponent component, WindowFocusListener focusListener)` Installs a `WindowFocusListener` on the given `JComponent`'s parent `Window`.
    `static boolean` | `isParentWindowFocused(Component component)` `true` if the given `Component`'s has a parent `Window` (i.e.
    `static void` | `makeWindowNonOpaque(Window window)` Try's to make the given `Window` non-opqaue (transparent) across platforms and JREs.

    - ### Methods inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### WindowUtils

          public WindowUtils()

  - ### Method Detail

    - #### makeWindowNonOpaque

          public static void makeWindowNonOpaque(Window window)

      Try's to make the given `Window` non-opqaue (transparent) across platforms and JREs. This method is not guaranteed to succeed, and will fail silently if the given `Window` cannot be made non-opaque.

      This method is useful, for example, when creating a HUD style window that is semi-transparent, and thus doesn't want the window background to be drawn.
      Parameters:
        `window` - the `Window` to make non-opaque.

    - #### createAndInstallRepaintWindowFocusListener

          @Deprecated
          public static WindowFocusListener createAndInstallRepaintWindowFocusListener(Window window)

      Deprecated. use the more targeted `installJComponentRepainterOnWindowFocusChanged(JComponent)` method.
      Creates and installs a `WindowFocusListener` on the given `Window` which calls the `Window`'s `repaint()` method on focus state changes.
      Parameters:
        `window` - the `Window` to repaint on focus state changes.
      Returns:
        the listener installed.

    - #### isParentWindowFocused

          public static boolean isParentWindowFocused(Component component)

      `true` if the given `Component`'s has a parent `Window` (i.e. it's not null) and that `Window` is currently active (focused).
      Parameters:
        `component` - the `Component` to check the parent `Window`'s focus for.
      Returns:
        `true` if the given `Component`'s parent `Window` is currently active.

    - #### installWeakWindowFocusListener

          public static void installWeakWindowFocusListener(JComponent component,
                                            WindowFocusListener focusListener)

      Installs a `WindowFocusListener` on the given `JComponent`'s parent `Window`. If the `JComponent` doesn't yet have a parent, then the listener will be installed when the component is added to a container.
      Parameters:
        `component` - the component who's parent frame to listen to focus changes on.
        `focusListener` - the `WindowFocusListener` to notify when focus changes.

    - #### installJComponentRepainterOnWindowFocusChanged

          public static void installJComponentRepainterOnWindowFocusChanged(JComponent component)

      Installs a listener on the given `JComponent`'s parent `Window` that repaints the given component when the parent window's focused state changes. If the given component does not have a parent at the time this method is called, then an ancestor listener will be installed that installs a window listener when the components parent changes.
      Parameters:
        `component` - the `JComponent` to add the repaint focus listener to.