为什么在java(NetBeans IDE 7.2.1)中使用此语句
com.sun.awt.AWTUtilities.setWindowOpacity(this, 0.3f);
发出以下错误:
Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: The frame is decorated
at java.awt.Frame.setOpacity(Frame.java:960)
答案 0 :(得分:3)
来自java docs
不透明度值在[0..1]范围内。请注意,设置不透明度 0级可能会也可能不会禁用鼠标事件处理 窗口。这是一种依赖于平台的行为。
必须满足以下条件才能设置不透明度值 小于1.0f:
- 底层必须支持TRANSLUCENT半透明 系统
- 窗口必须未修饰(参见setUndecorated(boolean)和> Dialog.setUndecorated(boolean))
- 窗口不得处于全屏模式(请参阅> GraphicsDevice.setFullScreenWindow(Window))
如果请求的不透明度值小于1.0f,并且上述任何条件都是 不满足,窗口不透明度不会改变,而且 将抛出IllegalComponentStateException。
你显然没有遇到其中一个条件,大部分都是第二个