javaの描画関係のプログラムの考え方について
昔からあるJavaの基本的なグラフィックスのプログラム(下方のサンプル)の構造の基本についてお尋ねします。
プログラムの構成を言葉で言うなら、
1 クラスの設定
2 クラス内部のメソッドの作成(コンストラクタ、paint, main)
(mainはメソッドとは言わないかもしれませんが、クラスの中の実働部隊のトップということでそういう位置づけにしました。)
ここで疑問ですが、
疑問1
paintメソッドですが、どのようにして呼ばれていると考えるのでしょうか。プログラムの中で呼び出されていないように見えます。
mainの中のw.setVisible(true)とかw.show()が描画せよ、というトリガーだと思いますが、paintを動かせとはストレートには読めません。
w.paint() とかだとTestクラスのオブジェクトwのメソッドpaintを動かしているということが示されるわけですが。こういうのがないですね。
疑問2
mainの中のFrame w=new Test()はTest w=new Test()でも動作しますが、これはあまり気にしなくていいでしょうか。
---- 以下はプログラムの構造です。---
import 適当に
public class Test extends Frame{
public Test(){ クラスと同じ名前なのでコンストラクタですね。
setSize(300,300);ウィンドウのサイズ指定
addWindowListener()
などいろいろウィンドウのセッティング
ウィンドウの閉じ方とか
描画のためのキャンバスの用意
}
public void paint(Graphics g){
g.drawLine(0,0,200,200); 描画本体
この部分をいろいろプログラミングする
}
public static void main(String[] args){
メインなのでここがスタートライン
Frame w=new Test(); オブジェクトを作って
// w.show();
w.setVisible(true); 描け
}
}
お礼
アドバイス、どうもありがとうございます。 API…そういえば、近くにそんないいお手本があったのですよね。 じっくり見てみようと思います。 …やはり、いちばんは、とにかくやってみることですよね。なかなか、オブジェクト指向が理解できなくて苦戦しそうですが、がんばってみようと思います。 ありがとうございました。