• ベストアンサー

画像を一瞬だけ表示する。

JAVAアプリケーションで画像(jpeg)を一瞬だけ表示させたいのですが どのようにすればよいでしょうか? ほとんど素人(C言語の基礎はわかる)なのでこれが出来るようになるために お勧めの本などありましたら教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#49664
noname#49664
回答No.2

>画像のサイズに合わせてフレームの大きさを調整する方法 >(一瞬だけ表示するボタンをその下に設置したい) >(現在はBoderLayoutを用いている) まず、BorderLayoutなどのレイアウトマネージャを使っている場合、配置や大きさなどはレイアウトマネージャが管理するのでプログラマが考えている通りにはならない、という点を頭に入れておく必要があります。  完全に自由にしたければ、レイアウトマネージャをnullに設定し、それからBufferedImageのgetWidth/getHeightで大きさを取得してFrameの大きさを調整し描画する・・といった処理をすべて自分で組み込めばよいでしょう。  レイアウトマネージャを活かした場合には、画像を1つのコンポーネントとして組み込み、再レイアウトさせる必要があるでしょう。例えばですが、SwingならばJPanel、AWTならばCanvasを継承したクラスを定義し、それでprefferedSize、minimumSize、maximumSize等を設定して画像表示コンポーネントを用意しておきます。これを組み込んで、再レイアウト時にpackを行えば大きさは再調整されます。このへんは、けっこうややこしい部分なので、AWT/Swingの解説書などで詳しく調べてみた方がよいかと思います。 >イベントリスナーを用いてボタンを押したときに >一瞬だけ画像を表示させたいです。 どのように表示をさせているのかわからないのですが、例えば、ボタンのActionListenerで、 ・getGraphicsでGraphicsを得る。 ・[Graphics].drawImageでイメージを描画。 ・repaintで初期化(これで元の状態、すなわち消える) ・Graphicsを破棄 ・・といった形で一瞬だけ描画はできると思います。ほんとに一瞬なので、若干でも時間調整をしたければ、Thread.sleepなどでスレッドを一時的に停止するといった処理が必要でしょう。このあたりは、スレッドについての説明などを調べてみるとわかるかと思います。

ebinamori
質問者

お礼

御礼が遅くなり申し訳ありません。 何とか作ることが出来ました。 大変参考になりました。 回答ありがとうございます。

その他の回答 (2)

  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.3

 こんにちは。 >画像のサイズに合わせてフレームの大きさを調整する方法 >(一瞬だけ表示するボタンをその下に設置したい) >(現在はBoderLayoutを用いている)  こんなのはどうでしょう? 1.画像表示用のコンポーネントとしてCanvasを継承したコンポーネントを作る。 (内部にImageを保持しつつ、表示したり、しなかったりできるように作っておく) 2.その表示用コンポーネントで、getPreferredSize()メソッドをオーバーライドし、表示する画像の大きさと同じサイズの推奨サイズを返すように作っておく。 3.フレームのレイアウトにBorderLayoutか何かを設定して置き、packメソッドを呼び、フレームをちょうどよい大きさにする。 >イベントリスナーを用いてボタンを押したときに >一瞬だけ画像を表示させたいです。  これは、AWTを使っているのならjava.util.Timer、Swingならjavax.swing.Timerあたりを使うのが一番簡単なのではないでしょうか。

ebinamori
質問者

お礼

お礼が遅くなり済みませんでした。 希望通り作ることが出来ました。 ありがとうございました。

noname#49664
noname#49664
回答No.1

>JAVAアプリケーションで画像(jpeg)を一瞬だけ表示させたいのですが >どのようにすればよいでしょうか? ほとんど素人ということですが、まずJavaアプリケーションの作り方はわかりますか? また、画像の読み込み方、表示の仕方はわかるでしょうか? それらがわかった上で、「一瞬だけ」表示させる方法がわからないのか、そもそもJavaアプリケーションの作り方からまるっきりわからないのか、そのあたりがわからないのでなんともいえないのですが・・。 まるっきりわからないのであれば、画像うんぬんの前に、Javaの基本を一通り勉強する方が結局近道になるでしょう。Javaの入門書はたくさんありますし、ここでも検索すればおすすめの書籍が山ほど見つかるはずです。  基本はわかっているということでしたら、どのあたりまでわかっていてどの部分がわからないか、もう少し具体的に書いていただけませんか?

ebinamori
質問者

補足

画像を表示するところまではできました。 しかしながら 画像のサイズに合わせてフレームの大きさを調整する方法 (一瞬だけ表示するボタンをその下に設置したい) (現在はBoderLayoutを用いている) や イベントリスナーを用いてボタンを押したときに 一瞬だけ画像を表示させたいです。 説明不足名部分が多々あり申し訳ありませんでした。 回答よろしくお願いします。

関連するQ&A

専門家に質問してみよう