2011-09-08 4 views
7

:私はJFrameのに半透明を適用することができているように見えるjdk1.6.0_26と Is The Java Tutorials Translucent Window example giving trouble to those playing with jdk7?タイトルバーを含むJava 7に半透明のウィンドウを表示することはできますか?この質問に関連し

ではなく、そうjre7と:

NativeException:java.awt.IllegalComponentStateException:フレーム飾ら

EX(JRubyのスクリプトのjava、しかしJDK7でJDK1.6ではなく動作します)されています

 

require 'java' 

class MouseDraw 

    def self.go 
    java_import 'javax.swing.JFrame' 
    java_import 'com.sun.awt.AWTUtilities' 

    f = JFrame.new 
    AWTUtilities.set_window_opacity(f, 0.5) 
    f.set_size 200,200 
    f.show 
    end 

end 
MouseDraw.go 

だから私の質問は、「それが持つことが可能です非公式クラスAWTUtilitiesは、Java 6で残念ながらそれはだ

をやったことをやってWindow.setOpacity()を導入JDK7" で半透明のタイトルバー(私はサイズ変更可能/ドラッグ可能であることを作成していた透明窓を希望)

答えて

8

のJava 7装飾されたウィンドウで動作しないように文書化:

次の条件が1.0f未満不透明度の値を設定するために満たされている必要があります

+3

実際には、それは既存のコードを破る動作の変更です... – kleopatra

+0

@kleopatra:それはあなたのためにサインアップしたものです非公式APIを使用しました: 'AWTUtilities'はJava SEで定義されておらず、新しいメソッドは以前に定義されたパブリックメソッドとの互換性を損なわない –

+1

技術的には、技術的にも、技術的には、私はそうではありませんでした。代わりに、To-be機能の半公式のプレビューであったAWTUtilitiesWrapperを使用しました(そして、かなり安全と宣伝されました;-) – kleopatra

2

艶やか(重点鉱山)、あなたは

を追加した場合
JFrame.setDefaultLookAndFeelDecorated(true); 

次に、タイトルバーJFrame(醜いJavaのルックアンドフィールを使用する)でドラッグ可能にすることができます。

REF:Pass mouse events to applications behind from a Java UI

は、今では奇妙です。

はまた、あなたがJavaの6と7の両方で古い動作を持つことができますが、特殊なケースにコードを持っていると思いますhttp://docs.oracle.com/javase/tutorial/uiswing/misc/trans_shaped_windows.html

を参照してください、あなたはピクセルの透明ごとに使用する「偽」の古い行動できることに注意してくださいその周りに1つの方法、一方向、他の可能性があります...

関連する問題