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