Package com.sun.jna.platform
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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
WindowUtils.NativeWindowUtils.TransparentContentPane
-
Constructor Summary
Constructors Constructor Description NativeWindowUtils()
-
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 aShape
.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.
-
-
-
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 ofnull
means to remove the mask.
-
setWindowMask
public void setWindowMask(java.awt.Component w, java.awt.Shape mask)
Set the window mask based on aShape
.
-
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. TheWS_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
-
-