1

現在、2 つの Java GUI で苦労しています。

これが状況です: Swing コンポーネントを使用して単語ゲームを設計しています。すべてが配置されるメインの JFrame があります (私の GUI クラスは JFrame を拡張します)。やりたいことは2つあります。

1 つ目:メイン フレームの背景画像として画像を設定したいのですが、すべてのコンポーネントの背後に表示する必要があります。私は周りを検索しましたが、有効な解決策が見つかりませんでした。拡張された BackGroundPanel クラスを作成しようとしましたが、BackGroundPanel のインスタンスを作成するときに、それをフレームの背景にする方法がわかりません...「画像」から画像を読み込む良い方法も見つかりませんでした私のsrcフォルダ内のディレクトリ...

2番目:プログラムが起動すると、装飾されていないJDialogが表示され、メインフレームを無効にする必要があることがわかりましたが、少し暗くしたいと思います。GlassPaneで可能だと思いますが、GlassPaneを設定してパネルを1色で覆う方法がわかりません...

助けていただければ幸いです。共有するのに役立つコードはないと思いますが、上記の状況から一般的なアイデアが得られると思いますか? これをさらに解決できるように、誰かにこれを軌道に乗せてもらいたいだけです! ありがとう!

4

2 に答える 2

2

私のメインクラスは拡張JFrameされ、BorderLayout.

BorderLayoutyourをJPanelhaving に追加しますGridLayout()

  1. これAnimationTestは、コンポーネントの背後にある背景イメージをペイントすることを示しています。

  2. このTranslucent例は、AlphaComposite;の使用を示しています。こちらもご覧くださいAlphaTest

于 2013-03-04T18:07:10.517 に答える
0

最初の質問では、ラベルを使用してそのアイコンを設定できます。

JLabel lblimage = new JLabel("");

lblimage.setIcon(new ImageIcon(Main.class.getResource("/img/background.png")));
lblimage.setBounds(0, 0, 794, 711); //size of frame

contentPane.add(lblimage); //bottom
contentPane.add(component1); //middle low
contentPane.add(component2); //middle top
contentPane.add(component3); //top

2番目の質問については..同じことを行うことができます。無地の画像を使用して透明度を下げ、他のコンポーネントの上に配置するだけです(ただし、このソリューションについてはわかりません)。

于 2013-03-04T17:24:24.153 に答える