9月18日の講義メモ
はじめに、画像の表示の話。画像の表示
まず、サンプルコードから。
import java.applet.Applet;
import java.awt.Image;
import java.awt.Graphics;
public class Test extends Applet {
Image img;
public void init() {
img = getImage(getDocumentBase(), "img.jpg");
}
public void paint(Graphics g) {
g.drawImage(img, 0, 0, this);
}
}
img = getImage(getDocumentBase(), "img.jpg") の行に着目してください。
まず一点め。
Imageクラスのオブジェクトの生成には、通常はコンストラクタを用いずに、
getImageメソッドを使います。getImageメソッドは内部でコンストラクタを
呼びます。メソッドの返り値として、生成したオブジェクトを返します。(こういうメソッドを「ファクトリーメソッド」といいます。) なぜそうなっているかについては、後々出てくるかもしれません。いまは、そういうものだと思っててください。
二点め。
getImageメソッドには、一つめの引数として
getDocumentBaseメソッドの値が
渡されています。getDocumentBaseメソッドは引数なしで呼ばれると
そのアプレットが組込まれているドキュメント(HTMLファイル)のディレクトリ(正確にはURL)を返します。したがって、こう書くことでこのアプレットはどのサーバに置かれた場合でも(同じディレクトリにimg.jpgというファイルや呼出すHTMLファイルも一緒に置けば) 画像のファイルを読み出すことが出来ます。
getImageメソッドはAppletクラスのメソッドです。
画像ファイルとして、GIF(アニメーションGIFを含む), JPEG, PNGなどを扱うことができます。
(つまり、GIFや JPEG, PNGのファイルをもとにして Imageオブジェクトを生成する機能を持っている。)
つぎに、
drawImageメソッドについて。
GraphicsクラスのdrawImageメソッドは、Imageオブジェクトを描画します。
練習問題
上のプログラムを、実際に入力して動かしてみましょう。
(アニメーションGIFとか、いろんな形式のファイルで試してみて。)
(解答例はTest.javaとTest.html)
元データでは、別ファイルにサンプルのソースを書いて、メモからリンクしてた。
簡単だけど、CSSも使って見栄え良くしたり (blogger.comに埋め込むと読めないけど)、あと、初出ならとにかくクラスとメソッドはsunのjavadocに全部リンクするよう心掛けてた。
頑張ってたのぉ。なんで頑張ってたかというと、たぶん人のためにやってたせいだろう。
一緒にやってた人たち、いまはどうしているかな。
![]() |
| From mesomerism |

0 comments:
Post a Comment