Here is an example .
If you create and run TranslucentWindow , say NetBeans IDE 7.0, which supports jdk7, you will get the following exception:
Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: The frame is decorated at java.awt.Frame.setOpacity(Frame.java:960) at main.TranslucentWindow.<init>(TranslucentWindow.java:23) at main.TranslucentWindow$1.run(TranslucentWindow.java:47) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705) at java.awt.EventQueue.access$000(EventQueue.java:101) at java.awt.EventQueue$3.run(EventQueue.java:666) at java.awt.EventQueue$3.run(EventQueue.java:664) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:675) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) BUILD SUCCESSFUL (total time: 1 second)
According to this stack trace, the violation line is tw.setOpacity(0.55f) . But, as the error indicates, if you call setUndecorated(true) in the frame, then it will not throw an exception and will create a translucent window, although without any decoration (which is a pain). This is normal? Should this code work correctly out of the box? Am I missing something?
EDIT
Why does their translucent window look decorated or is it a custom rendering?
What it is...

What should it be ...

mre
source share