近所の地図というか,現在次男かずが通っている中学校の校区の地図を眺めていた。なかなかおもしろい地名があるのだ。博労町(ばくろうまち)や旅籠町(はたごまち),風呂屋町(ふろやちょう)などは,昔その町に住んでいた人の職業や町の機能を示しているのだろうが,なんだかわからない地名もある。たとえば,西藤平蔵,さいとうへいぞうさんという名前ではない。にしとうへいぞうという地名である。校区は違うが近くに東藤平蔵もある。知らない人に説明するときは,「鬼平犯科帳みたいな地名だけど」と前置きすることにしている。

 長い間住んでいるのに,ずっと読み方を間違えている町名があることに気が付いた。白銀町と白金町,通りを挟んで向い合っているこの二つの町名の読み方である。白銀町=「しろがねまち」,白金町=「しろかねちょう」と覚えていたが,実は白銀町=「しろかねちょう」,白金町=「しろがねまち」だったのである。思い込みはいけないが,どうしてこんな読み方になったのだろうか?そのうち調べてみたい。

 Eclipse3.1とVisual Editor1.1をインストールしたPCのメモリを1GBにアップしたところ,物理メモリに少し余裕ができたのか,かなり快適に操作できるようになった。こうしろうの PCはメモリが512MBしかないので苦しいはずなのだが,特に不平も言わずEclipseの勉強を続けている。私のPCよりもセカンド・キャッシュが大きいから,Visual Editorを読み込んでしまえば,そんなに遅くはないのかもしれない。

 Visual Editorを使ってGUIアプリを作ってみようというのが現在のこの日記のテーマである。JavaではAWTやSwingパッケージ,そしてSWTを使ってGUIアプリを作成することができるが,ここではOSに依存しないSwingを使ってみようと思う。

 Eclipseのメニューからファイル-新規-その他とたどり,ウィザードの選択に進む。

 Java-Swing-JFrame Visual Classを選び,次へをクリックする。

 名前(M):には適当なクラス名を入力する。スーパークラスがjavax.swing.JFrameとなっているところがミソである。どのメソッド・スタブを作成しますか?ではpublic static void mainにチェックが付いていることを確認する。終了をクリックして,しばらく待つとウィンドウが表示される。

 JFrameというタイトルのフレームウィンドウの下には,自動生成されたフレームを作成するためのコードが表示されている。

 画面のキャプチャばかりで読みにくいかもしれないが,JFrameをクリックして選択し,プロパティを変更してみる。

 sizeプロパティを400,240,titleを「練習」に変更すると,フレームが変化するだけでなく,initializeメソッドにあるフレームのサイズやタイトルを設定するコードも変更される。逆にコードを直接変更した場合も,もちろんプロパティに反映される。

 フレームを右クリックして,実行-Java Beanを選ぶと,プログラムが実行しウィンドウが表示される。Eclipse3.1では3.0よりも簡単に作成したプログラムを実行できる。

 Java BeanではなくJavaアプリーケーションを作成しているのだが,mainメソッドにインスタンスの生成やフレームを見えるよう(Visible)にするコードを書いていないので,まだJavaアプリーケーションとしては実行することができないのだ。

 mainメソッドに次のようにコードを追加すると,Javaアプリーケーションとして実行できるようになる。

----------------------------------------------------------

public static void main(String[] args) {
  // TODO 自動生成されたメソッド・スタブ
  MyApp11 MyFrame = new MyApp11();
  MyFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  MyFrame.setVisible(true);
}

----------------------------------------------------------
 MyApp11クラスのインスタンスMyFrame を生成し,setVisibleメソッドで可視にしている。MyFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)は閉じるボタンが押されたときの処理の指定だ。EXIT_ON_CLOSEはexit メソッドを使用してアプリケーションを終了するという意味である。