2009-06-17 13 views
1

私はJPanelに矩形を描画する方法を知っていますが、矩形を浮かせるように矩形を画面にペイントするにはどうすればよいですか?具体的には、塗りつぶされていない四角形です。私の考えは、透明なJFrameを描画した四角形を使用することです。ただし、これにより、JFrameのすべてのコンテンツが透明になります。画面の浮動矩形

マイソリューション だから私はこれについて行くの多くの方法、他のものよりも複雑ないくつかの、他よりもいくつかのより実用的であると思います。

私はスプラッシュ画面を試しました。問題は、実行時にVMパラメータ "-splash"を渡す必要があることです。私はこれを自動化するためのマニフェストファイルを作成し/ eclipseにパラメータを入れます。コードは.gifファイルに依存しており、矩形のサイズや位置を簡単に変更することはできません。画面のスクリーンショットで偽装している間も同様の問題が発生します。しかし良い提案、私はいくつかの非常にクールなものを学んだ。

だから、私がやったことに戻る。私は、JFrameを使用し、コンテンツペインを取得し、背景色を赤色に設定してから、ウィンドウのタイトルバーと枠線を取り除くデコレーションされていないフレームを設定します。これにより、浮動四角形が作成され、(frame.setSize、.setLocation)のサイズと位置を簡単に変更できます。私はこれをまだ塗りつぶされていない矩形にする必要があります。内部フレームとレイヤーペインを試しましたが、成功しませんでした。

+0

J6は、スプラッシュスクリーンAPIを持つhttp://java.sun.com/developer/を:このページのデモでは、あなたの四角形を描くときに透明にあなたの塗料を設定する必要がありますしかし、あなたが欲しいものを部分的に示しています技術記事/ J2SE /デスクトップ/ javase6 /スプラッシュスクリーン/ –

答えて

0

実際の描画された矩形が透明ではないのに、おそらくウィンドウの一部を透明にしなければならないでしょう。私はこれにプラットフォームに依存しないソリューションがあるとは思わないので、JNIに頼る必要があります。あなたが何をする必要があるかに応じて、他のトリックも必要とするクリックに対してウィンドウを見えないようにするのもいいかもしれません。プロジェクトは、ライブラリを提供し、半透明であり、あなたがやろうとしているにも何超越クロックとの情報バルーンの例を持っていることを

0

https://github.com/twall/jna/

。デモはWindowsでもうまくいきますが、クロスプラットフォームであることを話すことはできませんでした。

1

JFrameは重量コンポーネントであり、それらは常に最も長い時間不透明です。ただし、Java 6u10の以来、最も可能性の高い以前のバージョンでのJava 7の公式になりますクラスcom.sun.awt.AWTUtilities、透明窓用inofficial APIがあり、この種のものをシミュレートするための唯一の方法は、java.awt.Robot

0
で撮影した fake it via screenshotsにしました

JLayeredPaneをご覧ください。

AlphaComposite ac = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5f); 
g2d.setComposite(ac); 
g2d.drawImage(image, x, y, this); 
関連する問題