ツアーを始めたが、まもなくマニュアルが異常に読みにくいことに気がついた。分野であるから、言葉も概念も見慣れないためわかりにくいのかな。思ったがそうでもないようだ。訳もちょっとおかしいのかもしれないが、たぶん原文が妙なのだろう。JavaBeansとのところは何度読んでもなんのことやらさっぱりわからない。いうわけでまずちょっとだけツアーをやって、よーし。Browerを写してコンパイルしよう、と思ったらあっさり壁にぶつかった。マニュアルは尊重しなくてはならない、と思ってまたツアーに戻り、、という試行錯誤を何度かやったあげく、なんとかコンパイルに成功した。(コンパイラが動かなくなってからチェックなしにずいぶんプログラムを追加したので山のようなコンパイルエラーがでたが。Viewerで動かしてみると、なんとなく動いているようではある。スクロールリストから要素をクリックして選ぶ処理がうまくいかない。イベント処理のメソッドに飛んでいる気がしない。さっき無視した「警告」が効いているのかもしれない、と思ってよくよく警告をみてみれば、AWTの各コンポーネントに対するイベント処理のところで警告がでている。曰く「この方法は古い」のようなことを言ってくる。確かに前述の参考書に載っているイベント処理の仕方には多少疑問をもっていたのである。一例を挙げればこうだ。Event.LIST-DESELECT).{//Event処理のコードがかかれるという感じなのだが、これでは、evt.targetのクラスを確認しているだけで、名前を確認していない。いうことは一つのアプレットに複数のスクロールリストがあったときにその区別が付かないではないか。おまけにこのサンプルプログラムではhandleEventメソッドを完全にオーバーライドしているので、何がおこるかわかったもんじゃない。(superを呼べばいいのだろうが)確かにこのサンプルプログラムは、この機能だけをしめせばいいのであるから、これでいいのかもしれないが、ちょっとはた迷惑な感じである。Cafeのマニュアルに戻るわけだ。そこでみてみると、どうもJDK1.1からイベント処理の仕方が変わったらしい。確かにこの方法じゃあな。バージョン番号が0.1上がるだけで、いきなりイベント処理を変更するなんて言う大規模な変更をしてもいいものだろうか?これはまだJAVAが開発の初期段階にあることを意味する物かもしれない。例によってマニュアルを読んだだけでは、VisualCafeがイベント処理をどうやってくれるのかさっぱりわからない。しょうがないから、実際に「イベント処理の自動コード作成」機能を使ってみるか。そこである事実に気がついた。Cafeの画面上で定義せねばならないらしい。(実は後でそうでもないことに気がついたが)なんということだ。あの画面定義の苦労をせねばならんとは。はいっても今度は各パラメータを変更した結果をほぼリアルタイムに画面上で確認できるのでらくは楽である。例によって例のごとくの試行錯誤をくりかえしながら、、なんとか画面ができあがった。自動作成されたプログラムをみてみると、確かに山のようなコードができている。便利というかなんというか。このコードをどのように変更していいものかどうか?Appletの中にあるinit()メソッドの中ですべて画面の要素が定義されていて、とてもこのままでは使えた物ではない。init()はほとんどメソッドの呼び出しだけにしたい。この方法を見つけるのにまたもや結構な時間を費やした。(実はマニュアルの中に該当の記述があることに後で気がついた。それでもマニュアルをまじめに読んでみよう、という気がおきないほど、マニュアルは読みにくいのである)さてこれでようやく振り出しに戻った、という感じである。本来の目的であるイベント処理を自動作成させてみると。例によって大量のコードが自動作成されているが(そして例によってこれをどうなおして良くて、どうなおしていけないか、マニュアルの記述は破壊的に読みにくいが)とりあえず動くわけである。