== 画像を表示する == 画像を表示するには2つの処理が必要です。 * 画像を読み込む * 画像を表示する 読み込んだ画像を覚えておくにはImageクラスの変数(オブジェクト)を使います。 . {{attachment:image1.png}} ---- === 画像を読み込む === 最初に一度だけ行えばよい。 コンストラクタ内に記述すれば、インスタンスが作られるときに1度だけ実行される。 画像ファイルから読み込むには !ImageIconクラスを使います。 . javax.swingパッケージにあります。 . コンストラクタ !ImageIcon( ファイル名 ) を使うとファイルから読みこんでインスタンスが作られます。 !ImageIconインスタンスからImageを得るにはgetImageメソッドを使います。 {{{#!java public class Sample5 extends JPanel { Image img; Sample5() { ImageIcon ii; ii = new ImageIcon( "sample.jpg" ); img = ii.getImage(); } } }}} ---- === 画像を表示する === 表示はpaintComponentメソッド内に記述します。 drawImageメソッドを使います。 . java.awtパッケージ内 . graphicsクラス のメソッドです。 APIを調べてみましょう。同じ名前のメソッドが6種類あります。<
> 最も簡単な使い方を示します。 {{{ g.drawImage(img, 0,0, this); }}} . 1番目の引数で表示するイメージを指定します。 . 2番目と3番目の引数で、どの位置に表示するかを指定します。 . 4番目の引数には情報を受け取るオブジェクトを指定します。通常はthisを指定すればよい。 画像を読み込む処理は別のスレッドで行われるため、 場合によっては処理が完了したかなどの情報が必要なことがあります。 ネットワークを介してファイルを読み込むなど手間のかかる処理を考えてみてください。 読み込みだけでなく、別のスレッドでイメージを修正しようとしているかもしれません。 このために、!ImageObserverの機能をもつオブジェクトを最後の引数として指定します。 ---- === 演習 === 例とは別のdrawImageメソッドを使って、画像の一部をウインドウ内の一部に表示しなさい。 . {{attachment:image2.png}} ヒント . 上の例はAPIリファレンスの2番目のdrawImageであるが、6番目のdrawImageを使う。