/** Note that the property * <code>apple.awt.draggableWindowBackground</code> must be set to its * final value <em>before</em> the heavyweight peer for the Window is * created. Once {@link Component#addNotify} has been called on the * component, causing creation of the heavyweight peer, changing this * property has no effect. * @see <a href="http://developer.apple.com/technotes/tn2007/tn2196.html#APPLE_AWT_DRAGGABLEWINDOWBACKGROUND">Apple Technote 2007</a> */ public void setWindowAlpha(final Window w, final float alpha) { if (w instanceof RootPaneContainer) { JRootPane p = ((RootPaneContainer)w).getRootPane(); p.putClientProperty("Window.alpha", new Float(alpha)); fixWindowDragging(w, "setWindowAlpha"); } whenDisplayable(w, new Runnable() { public void run() { Object peer = w.getPeer(); try { peer.getClass().getMethod("setAlpha", new Class[]{ float.class }).invoke(peer, new Object[]{ new Float(alpha) }); } catch (Exception e) { } } }); }
fixWindowDragging(w, "setWindowAlpha"); whenDisplayable(w, new Runnable() { @Override public void run() {