第13回目-2005/1/17

電卓を作ってみる


前回までのところのイベント処理についてのまとめ

イベント処理という概念を理解する

マウスのボタンをクリックした場合などに、「イベント」が発生する。イベントはシステムの中のどこかで何かが発生するという漠然とした概念で理解する。

イベントには、ほかには、キーボードのキーが打たれたとか、ウインドウのサイズが変更したなど、いろいろなものが定義されている。

そのイベント処理をどういった仕組みで処理するか

Javaの世界では、イベントが発生すると、特定のオブジェクトに対するメソッドの呼び出しが発生する。したがって、Javaのプログラムを適切に記述すれば、あるイベントが起こったときに行う処理を、自分で構築することができる。

Javaでの実現方法としては、いくつかのやり方がある。

いずれにしても、どのオブジェクトでイベントの受付を行うのかということは、何らかの方法でシステムに教えてやらないといけない。つまり、イベントの受付を登録する必要がある。たとえば、特定のボタンをクリックしたときにある処理を行う場合、そのボタン自体をシステムに登録する。

また、「内部クラス」という手法はイベント処理のプログラムで知っておくと非常に有効である。

そして、それが実際にどんなプログラムで記述できるのか

テキストで学習してもらいました。

JBuilderのような開発ツールでは、イベント処理プログラムの枠組み部分を簡単に作成することが可能な機能が含まれている。こうした機能を有効に使うことも大切である。もちろん、こうした機能を使わないで作ってもかまわない。

今日の作業

p237〜259をただ、ひたすらやってみましょう。キータイプに時間を取られても仕方ないので、今日のところは、ソースをダウンロードできるようにしておきました。

p241のソースp245のソース最終的なソースコード

デバッグ用のコード

ここからダウンロードしたソースに置き換えてください。上記の「最終的なソースコード」に、さらにデバッグのためのプログラムを加えました。デバッグのために、要所要所に、変数の内容を標準出力に出力するようなプログラムを加えていて、そこで、テキストの258ページにあるような注目したい変数の値を逐一表示するようにしています。本来なら、デバッグ機能を使ってできることなんですが、学校の環境のせいか、あるいはJBuilderのせいかはわかりませんけど、デバッグをするとあるところでほとんどフリーズしますので、デバッグ機能を使わないので、このソースを使ってください。電卓で計算すると、メッセージ領域に、デバッグ結果を出力しますので、それを参考にしてください。メッセージは、init()メソッドの最後、そして各ボタンのactionPerformerd()メソッドを実行した最後に出力されるようにしています。


練習問題

今日はなし。時間があれば、課題でもどうぞ