-3

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)
4

1 に答える 1

3

Java ドキュメントから

不透明度の値は [0..1] の範囲です。不透明度を 0 に設定すると、このウィンドウでのマウス イベント処理が無効になる場合と無効にならない場合があることに注意してください。これは、プラットフォームに依存する動作です。

不透明度の値を 1.0f 未満に設定するには、次の条件を満たす必要があります。

  • TRANSLUCENT 半透明性は、基盤となるシステムでサポートされている必要があります
  • ウィンドウは装飾されていない必要があります (setUndecorated(boolean) および > Dialog.setUndecorated(boolean) を参照)。
  • ウィンドウはフルスクリーン モードであってはなりません ( > GraphicsDevice.setFullScreenWindow(Window) を参照)。

要求された不透明度の値が 1.0f 未満で、上記の条件のいずれも満たされない場合、ウィンドウの不透明度は変更されず、IllegalComponentStateException がスローされます。

明らかに条件の 1 つを満たしていません。

于 2013-02-27T14:55:24.273 に答える