Class WindowUtils.NativeWindowUtils

  • java.lang.Object
    • com.sun.jna.platform.WindowUtils.NativeWindowUtils
  • Enclosing class:
    WindowUtils

    public abstract static class WindowUtils.NativeWindowUtils
    extends java.lang.Object
    Window utilities with differing native implementations.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected java.util.List<DesktopWindow> getAllWindows​(boolean onlyVisibleWindows)
      Requests a list of all currently available Desktop windows.
      java.awt.GraphicsConfiguration getAlphaCompatibleGraphicsConfiguration()
      Return the default graphics configuration.
      protected java.awt.Dimension getIconSize​(WinDef.HICON hIcon)
      Detects the size of an icon.
      protected java.lang.String getProcessFilePath​(WinDef.HWND hwnd)
      Detects the full file path of the process associated with the specified window handle.
      protected java.awt.Window getWindow​(java.awt.Component c)  
      protected java.awt.image.BufferedImage getWindowIcon​(WinDef.HWND hwnd)
      Obtains the set icon for the window associated with the specified window handle.
      protected java.awt.Rectangle getWindowLocationAndSize​(WinDef.HWND hwnd)
      Requests the location and size of the window associated with the specified window handle.
      protected java.lang.String getWindowTitle​(WinDef.HWND hwnd)
      Tries to obtain the Window's title which belongs to the specified window handle.
      boolean isWindowAlphaSupported()
      Default: no support.
      protected void setDoubleBuffered​(java.awt.Component root, boolean buffered)  
      protected void setForceHeavyweightPopups​(java.awt.Window w, boolean force)
      Use this method to ensure heavyweight popups are used in conjunction with a given window.
      protected void setLayersTransparent​(java.awt.Window w, boolean transparent)  
      protected void setMask​(java.awt.Component c, java.awt.image.Raster raster)
      Override this method to provide bitmap masking of the given heavyweight component.
      void setWindowAlpha​(java.awt.Window w, float alpha)
      Set the overall alpha transparency of the window.
      protected void setWindowMask​(java.awt.Component w, java.awt.image.Raster raster)
      Set the window mask based on the given Raster, which should be treated as a bitmap (zero/nonzero values only).
      void setWindowMask​(java.awt.Component w, java.awt.Shape mask)
      Set the window mask based on a Shape.
      void setWindowMask​(java.awt.Component w, javax.swing.Icon mask)
      Set the window mask based on an Icon.
      void setWindowTransparent​(java.awt.Window w, boolean transparent)
      Set the window to be transparent.
      protected java.awt.image.Raster toRaster​(java.awt.Component c, javax.swing.Icon mask)  
      protected java.awt.image.Raster toRaster​(java.awt.Shape mask)  
      protected java.awt.Shape toShape​(java.awt.image.Raster raster)  
      protected void whenDisplayable​(java.awt.Component w, java.lang.Runnable action)
      Execute the given action when the given window becomes displayable.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • NativeWindowUtils

        public NativeWindowUtils()
    • Method Detail

      • getWindow

        protected java.awt.Window getWindow​(java.awt.Component c)
      • whenDisplayable

        protected void whenDisplayable​(java.awt.Component w,
                                       java.lang.Runnable action)
        Execute the given action when the given window becomes displayable.
      • toRaster

        protected java.awt.image.Raster toRaster​(java.awt.Shape mask)
      • toRaster

        protected java.awt.image.Raster toRaster​(java.awt.Component c,
                                                 javax.swing.Icon mask)
      • toShape

        protected java.awt.Shape toShape​(java.awt.image.Raster raster)
      • setWindowAlpha

        public void setWindowAlpha​(java.awt.Window w,
                                   float alpha)
        Set the overall alpha transparency of the window. An alpha of 1.0 is fully opaque, 0.0 is fully transparent.
      • isWindowAlphaSupported

        public boolean isWindowAlphaSupported()
        Default: no support.
      • getAlphaCompatibleGraphicsConfiguration

        public java.awt.GraphicsConfiguration getAlphaCompatibleGraphicsConfiguration()
        Return the default graphics configuration.
      • setWindowTransparent

        public void setWindowTransparent​(java.awt.Window w,
                                         boolean transparent)
        Set the window to be transparent. Only explicitly painted pixels will be non-transparent. All pixels will be composited with whatever is under the window using their alpha values.
      • setDoubleBuffered

        protected void setDoubleBuffered​(java.awt.Component root,
                                         boolean buffered)
      • setLayersTransparent

        protected void setLayersTransparent​(java.awt.Window w,
                                            boolean transparent)
      • setMask

        protected void setMask​(java.awt.Component c,
                               java.awt.image.Raster raster)
        Override this method to provide bitmap masking of the given heavyweight component.
      • setWindowMask

        protected void setWindowMask​(java.awt.Component w,
                                     java.awt.image.Raster raster)
        Set the window mask based on the given Raster, which should be treated as a bitmap (zero/nonzero values only). A value of null means to remove the mask.
      • setWindowMask

        public void setWindowMask​(java.awt.Component w,
                                  java.awt.Shape mask)
        Set the window mask based on a Shape.
      • setWindowMask

        public void setWindowMask​(java.awt.Component w,
                                  javax.swing.Icon mask)
        Set the window mask based on an Icon. All non-transparent pixels will be included in the mask.
      • setForceHeavyweightPopups

        protected void setForceHeavyweightPopups​(java.awt.Window w,
                                                 boolean force)
        Use this method to ensure heavyweight popups are used in conjunction with a given window. This prevents the window's alpha setting or mask region from being applied to the popup.
      • getWindowIcon

        protected java.awt.image.BufferedImage getWindowIcon​(WinDef.HWND hwnd)
        Obtains the set icon for the window associated with the specified window handle.
        Parameters:
        hwnd - The concerning window handle.
        Returns:
        Either the window's icon or null if an error occurred.
        Throws:
        java.lang.UnsupportedOperationException - Thrown if this method wasn't yet implemented for the current platform.
      • getIconSize

        protected java.awt.Dimension getIconSize​(WinDef.HICON hIcon)
        Detects the size of an icon.
        Parameters:
        hIcon - The icon handle type.
        Returns:
        Either the requested icon's dimension or an Dimension instance of (0, 0).
        Throws:
        java.lang.UnsupportedOperationException - Thrown if this method wasn't yet implemented for the current platform.
      • getAllWindows

        protected java.util.List<DesktopWindow> getAllWindows​(boolean onlyVisibleWindows)
        Requests a list of all currently available Desktop windows.
        Parameters:
        onlyVisibleWindows - Specifies whether only currently visible windows will be considered (true). That are windows which are not minimized. The WS_VISIBLE flag will be checked (see: User32.IsWindowVisible(HWND)).
        Returns:
        A list with all windows and some detailed information.
        Throws:
        java.lang.UnsupportedOperationException - Thrown if this method wasn't yet implemented for the current platform.
      • getWindowTitle

        protected java.lang.String getWindowTitle​(WinDef.HWND hwnd)
        Tries to obtain the Window's title which belongs to the specified window handle.
        Parameters:
        hwnd - The concerning window handle.
        Returns:
        Either the title or an empty string of no title was found or an error occurred.
        Throws:
        java.lang.UnsupportedOperationException - Thrown if this method wasn't yet implemented for the
      • getProcessFilePath

        protected java.lang.String getProcessFilePath​(WinDef.HWND hwnd)
        Detects the full file path of the process associated with the specified window handle.
        Parameters:
        hwnd - The concerning window handle for which the PE file path is required.
        Returns:
        The full file path of the PE file that is associated with the specified window handle.
        Throws:
        java.lang.UnsupportedOperationException - Thrown if this method wasn't yet implemented for the
      • getWindowLocationAndSize

        protected java.awt.Rectangle getWindowLocationAndSize​(WinDef.HWND hwnd)
        Requests the location and size of the window associated with the specified window handle.
        Parameters:
        hwnd - The concerning window handle.
        Returns:
        The location and size of the window.
        Throws:
        java.lang.UnsupportedOperationException - Thrown if this method wasn't yet implemented for the