催眠術じゃアリマセン。

Monday, April 05, 2010

昔書いたメモ

フロッピーディスク(ってナニソレ?ってなことに、もうなりつつあるのかな?)を漁ってたら、昔書いた古い古いメモが出てきた。


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.javaTest.html)




元データでは、別ファイルにサンプルのソースを書いて、メモからリンクしてた。
簡単だけど、CSSも使って見栄え良くしたり (blogger.comに埋め込むと読めないけど)、あと、初出ならとにかくクラスとメソッドはsunのjavadocに全部リンクするよう心掛けてた。

頑張ってたのぉ。なんで頑張ってたかというと、たぶん人のためにやってたせいだろう。

一緒にやってた人たち、いまはどうしているかな。



From mesomerism

0 comments:

Blog Archive

あわせて読みたい

あわせて読みたい