com.sun.jna.examples
public class WindowUtils extends Object
NOTE: Neither shaped windows nor transparency currently works with Java 1.4 under X11. This is at least partly due to 1.4 using multiple X11 windows for a single given Java window. It *might* be possible to remedy by applying the window region/transparency to all descendants, but I haven't tried it. In addition, windows must be both displayable and visible before the corresponding native Drawable may be obtained; in later Java versions, the window need only be displayable.
NOTE: If you use setWindowMask and override Window#paint(Graphics) on OS X, you'll need to explicitly set the clip
mask on the Graphics object with the window mask; only the
content pane of the window and below have the window mask automatically
applied.
NOTE: On OSX, the property
apple.awt.draggableWindowBackground is set automatically when
a window's background color has an alpha component. That property must be
set to its final value before the heavyweight peer for the Window
is created. Once Component#addNotify has been called on the
component, causing creation of the heavyweight peer, changing this
property has no effect.
See Also: Apple Technote 2007
| Nested Class Summary | |
|---|---|
| abstract static class | WindowUtils.NativeWindowUtils Window utilities with differing native implementations. |
| protected static class | WindowUtils.RepaintTrigger
This can be installed over a JLayeredPane in order to
listen for repaint requests. |
| Field Summary | |
|---|---|
| static Shape | MASK_NONE Use this to clear a window mask. |
| Method Summary | |
|---|---|
| static GraphicsConfiguration | getAlphaCompatibleGraphicsConfiguration()
Returns a GraphicsConfiguration comptible with alpha
compositing. |
| static boolean | isWindowAlphaSupported() Indicate a window can have a global alpha setting. |
| static void | setComponentMask(Component c, Shape mask)
Applies the given mask to the given heavyweight component. |
| static void | setWindowAlpha(Window w, float alpha)
Set the overall window transparency. |
| static void | setWindowMask(Window w, Shape mask)
Applies the given mask to the given window. |
| static void | setWindowMask(Window w, Icon mask)
Applies the given mask to the given window. |
| static void | setWindowTransparent(Window w, boolean transparent)
Set the window to be transparent. |
NOTE: Windows requires that sun.java2d.noddraw=true
in order for alpha to work.
NOTE: On OSX, the property
apple.awt.draggableWindowBackground must be set to its
final value before the heavyweight peer for the Window is
created. Once Component#addNotify has been called on the
component, causing creation of the heavyweight peer, changing this
property has no effect.
See Also: Apple Technote 2007
apple.awt.draggableWindowBackground
must be set to its final value before the heavyweight peer for
the Window is created. Once Component#addNotify has been
called on the component, causing creation of the heavyweight peer,
changing this property has no effect.See Also: Apple Technote 2007