これが例です。
TranslucentWindow
たとえば、jdk7 をサポートする NetBeans IDE 7.0をビルドして実行すると、次の例外が発生します。
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)
このスタック トレースによると、問題のある行はtw.setOpacity(0.55f)
. ただし、エラーが示すようsetUndecorated(true)
に、フレームで呼び出すと、例外はスローされず、装飾はありませんが、半透明のウィンドウが作成されます (これは面倒です)。これは正常ですか?このコードは「そのまま」正しく実行されるべきではないでしょうか? 私は何かを見落としていますか?
編集
半透明のウィンドウが装飾されているように見えるのはなぜですか、それともこれはカスタム レンダリングですか?
それは何ですか...
どうあるべきか...