welcome: please sign in
location: "画像を表示する"の差分
17と18のリビジョン間の差分
2009-12-03 04:50:25時点のリビジョン17
サイズ: 2322
編集者: masahiko
コメント:
2009-12-04 02:25:49時点のリビジョン18
サイズ: 2487
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 58: 行 58:
----
=== 課題 ===
別のdrawImageメソッドを使って、画像の一部をウインドウ内の一部に表示しなさい。
 . {{attachment:image2.png}}

画像を表示する

画像を表示するには2つの処理が必要です。

  • 画像を読み込む
  • 画像を表示する

読み込んだ画像を覚えておくにはImageクラスの変数(オブジェクト)を使います。

  • image1.png


画像を読み込む

最初に一度だけ行えばよい。

  • コンストラクタ内に記述すれば、インスタンスが作られるときに実行される。

画像ファイルから読み込むには ImageIconクラスを使います。

  • javax.swingパッケージにあります。
  • コンストラクタ ImageIcon( ファイル名 ) を使うとファイルから読みこんでインスタンスが作られます。

ImageIconインスタンスからImageを得るにはgetImageメソッドを使います。

  •    1  public class Lesson11 extends JPanel
       2  {
       3         Image img;
       4         
       5         Lesson11()
       6         {
       7                 ImageIcon ii;
       8                 ii = new ImageIcon( "sample.jpg" );
       9                 img = ii.getImage();
      10         }
      11  }
    


画像を表示する

  • 表示はpaintComponentメソッド内に記述します。

drawImageメソッドを使います。

  • java.awtパッケージ内
  • graphicsクラス

のメソッドです。

APIを調べてみましょう。同じ名前のメソッドが6種類あります。
最も簡単な使い方を示します。

  •  g.drawImage(img, 0,0, this);
  • 1番目の引数で表示するイメージを指定します。
  • 2番目と3番目の引数で、どの位置に表示するかを指定します。
  • 4番目の引数には情報を受け取るオブジェクトを指定します。通常はthisを指定すればよい。

画像を読み込む処理は別のスレッドで行われるため、 場合によっては処理が完了したかなどの情報が必要なことがあります。 ネットワークを介してファイルを読み込むなど手間のかかる処理を考えてみてください。 読み込みだけでなく、別のスレッドでイメージを修正しようとしているかもしれません。 このために、ImageObserverの機能をもつオブジェクトを最後の引数として指定します。


課題

別のdrawImageメソッドを使って、画像の一部をウインドウ内の一部に表示しなさい。

  • image2.png

画像を表示する (最終更新日時 2010-12-18 06:53:05 更新者 masahiko)