JAVAプログラミング講座 宇宙のJAVAさん

- STORY 1 -



くま先生さて、この講座では、JAVA Applet を作っていきます。

ミャンちゃんJAVA Applet って何みゃん???

くま先生簡単に言うと「ホームページ(WWWブラウザ)上で動作するプログラム」です。普通のアプリケーションでしたら、別に JAVA を使わなくても作れます。せっかくの JAVA ですから、ホームページに飾れる Applet を作りましょう!

うし君ミャンちゃんはーい!

めっせーじ はんどら(いべんと くどー)

くま先生さて、Applet に限らず、Windows プログラムは、メッセージハンドラ(イベント駆動)でプログラムを行います。

ミャンちゃんみゃん????

くま先生MD-DOS等のプログラムは main関数 を上から順に処理していきます。たとえばぁ・・・

main() {                     
  ques1();
  ans1();
  ques2();
  ans2();
}

ques1(){
  若さって何だ?
}

ques2(){
  愛って何だ?
}

ans1(){
  振り向かない事さ
}

ans2(){
  ためらわない事さ
}

 

くま先生さて、牛君は昔 MS-DOS でCプログラムをやってたね!このようなプログラムがあったとき、処理順番はどうなるかな?(赤字はプログラム群)

うし君main の記述順番に関数が実行されるから、 若さって何だ?振り向かない事さ愛って何だ?ためらわない事さ、の順で動作するもぉーーー 。

くま先生あたりです! ところが Applet プログラム(Windowsプログラム)の場合は、そうはいかないのです。まず main関数がありません。そこで上から順番でなく、決められた時(イベント発生時)に、決められた関数が実行されます


init(){                      
  男なんだろう
}

print(){
  ぐずぐずするなよ
}

mouseDown(){
  胸のエンジンに
}

くま先生 例えば、こんな感じになります。

うし君も! main関数が無いもー。どこから始まるんだもー???

ミャンちゃん????

くま先生正確に言うとどこからも始まりません。ただし、それぞれの関数は実行すべきタイミングを持っています

init()
プログラム起動時に実行(1回限りの実行)。

paint()
画面作画関数
(1)最初に実行され画面作画。
(2)Windowが隠れてまた表に出て来た時に実行され画面作画。
(3)プログラム内で repaint() が実行された時。

mouseDown()
マウスが押されたときに実行。

 

くま先生と、決まっています。だから、プログラムをスタートすると、男なんだろう が実行され、次に ぐずぐずするなよ が実行されて画面に作画されます。(ここでは例としてよく使う3つの関数を紹介しましたが、こういう関数はたくさんあります)

ミャンちゃんわかったにゃん!! マウスが押されると 胸のエンジンに が実行するにゃん!!

くま先生そのとおり!! ただし、他のWindowsに隠れたりした後 再び表示されたり、最小化後 再び表示された場合は ぐずぐずするなよ が再び実行され、作画されます。

くま先生では、ミャアちゃん、プログラム講座おきまり中のおきまり!「Hello JAVA」の文字を画面に出す場合はどこに記述すれば良いか解りますか??

ミャンちゃん作画なので、paint() に記述するにゃあ!!


init(){                      
}

print(){
  Hello JAVA と作画するプログラム         
}

mouseDown(){
}

くま先生はい、そのとおりです。では牛君、マウスボタンを押したら画面に「Hello JAVA」と出るプログラムはどうでしょうか???

うし君うーーん、こうかもー!!!

 


init(){                      
}

print(){
}

mouseDown(){
  Hello JAVA と作画するプログラム         
}

くま先生うーーん、確かにこれでもマウスを押すと画面に文字が出ます。でも文字が出た後、画面が他の Window に隠れて、再び前面に出たとき、文字は消えてしまいます!!

くま先生再作画時に paint() が実行されるので、すべての作画に関するプログラムは paint() 内に書かなくてはいけません!!


int flag;

init(){                      
  flag = 0;
}

print(){
  if( flag==1 ){
    Hello JAVA と作画するプログラム         
  }
}

mouseDown(){
  flag = 1;
  repaint();
}

くま先生ボタンを押した後画面が隠れても文字が消えないようにするには、変数(ここでは変数名は flag )を使ってこのようにします。 repaint() という命令を実行すると、paint()関数が実行され画面作画されます(この場合、型は int よりも boolean の方が良いのだが、ここでは int を使いました)。

くま先生このプログラムでは、最初 init() で flag が 0 に設定されます。よって、プログラムスタート時の paint() では何も表示されません( if (flag==1) でないから・・)。で、マウスボタンが押されると flag は 1 になるので、画面に文字が表示されます。 文字が出た後、画面が他の Window に隠れて、再び前面に出たときでも flag は 1 のままですので、画面には文字が表示されます。

うし君なるほどもーー。paint() 以外で作画した場合、その作画が消える事があるのかもぉーー

くま先生牛君、そのとおり!! だからすべての作画は paint() の中で行います。

くま先生さて、STORY 1 はここらでおしまい。 次回は実際に JAVA Applet プログラムを作ってみましょう!!

ミャンちゃんうし君はーーーい!!

 

- 続く -

 


戻る