私はJFrameのサブクラスを持っています(JButton、Title、Jpanelを含んでいます)、JPanelを追加しました。 Jpanelはborderlayoutの中央部分を占めます。私はJPanelを透明にしたい(フレームウィンドウを通して見るべきである)。非透過コンポーネントをJava 1.5の透過JFrameに追加する方法は?
私はJava 1.5でこれをやっているので、Jframeの透明度を設定するためにJFrame.setOpacity(0.0f)を使いました。これを行うことで、JFrameのすべてのコンポーネント(ボタン、タイトルahd jPanel)が同じアルファレベルを使用しています。しかし、私はJPanelだけを透明にしたいです。
私は同じ結果でZオーダーを変更してJLayeredPaneを実験しました。
私はJNA(JNA windowsUtilはsetOpacity()メソッドと同じことをやっている)などの外部ライブラリを使用し、アプリケーションの外部ライブラリとしてjava7またはjava6のクラスを使用しています。
私もいくつかの経は、以前無し助けを借りて質問をした:ここで
Opaque components on transparent Java windows
Java: Transparent Windows with non-transparent components?
Re-paint on translucent frame/panel/component.
JNAユーティリティを使用している場合、希望の不透明度を示すウィンドウにアルファマスクを設定して、希望する効果を得ることができるかもしれません。そして、不透明でないビットをオリジナルの重量コンポーネントに置きます窓。これがうまくいくかどうかは、透明性が与えられたプラットフォームのウィンドウ階層をカスケードする方法に大きく依存します。 – technomage
ところで、JNAユーティリティは、グローバルウィンドウアルファ、ウィンドウビットマスク、およびアルファマスクの設定を提供します。最後は、あなたがしようとしていることのために働く可能性が最も高いです。以前のJVMで動作するjava [67]コードを取得する可能性は低いです。 – technomage