为什么在java中发生此错误

时间:2013-02-27 14:49:51

标签: java swing jframe

为什么在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)

1 个答案:

答案 0 :(得分:3)

来自java docs

  

不透明度值在[0..1]范围内。请注意,设置不透明度   0级可能会也可能不会禁用鼠标事件处理   窗口。这是一种依赖于平台的行为。

     

必须满足以下条件才能设置不透明度值   小于1.0f:

     
      
  • 底层必须支持TRANSLUCENT半透明   系统
  •   
  • 窗口必须未修饰(参见setUndecorated(boolean)和> Dialog.setUndecorated(boolean))
  •   
  • 窗口不得处于全屏模式(请参阅> GraphicsDevice.setFullScreenWindow(Window))
  •   
     

如果请求的不透明度值小于1.0f,并且上述任何条件都是   不满足,窗口不透明度不会改变,而且   将抛出IllegalComponentStateException。

你显然没有遇到其中一个条件,大部分都是第二个