「Eclipse3+Visual EditorによるJavaプログラミング」 プロジェクトウィルカ 著

Eclipse3+VisualEditorによるJavaプログラミングEclipse3.2対応
この本はかなり具体的な操作方法の記述が多い。なので、一通り読んだけど実際には試していないので、「読み終わった」とは言えないかもしれない。
ちょうどやりたいと思っていたGUIとデータベースの扱い方が具体的に書いてあるので、どちらもほとんど知らない俺には取っ掛かりにちょうど良い。


頭の整理のために簡単なまとめ。


第1章 Eclipse+VisualEditorの開発環境
EclipseとVisualEditorの簡単な紹介。
VisualEditorは、この手の本によくあるように著者がかかわったソフトの紹介みたいなものなのかなと思ったらそうではなく、Eclipseコンソーシアムが作っているものらしい。ただ、今ネットでちょっと調べた感じではGUIビルダーに関してはEclipseよりNetBeansの方が優勢らしい。


第2章 Swing,RCP,SWT,JFaceの予備知識
SwingはJavaGUIパッケージ。SwingのコンポーネントはすべてJava Bean。
RCPはEclipseのパッケージの1つで、その中にSWTやJFaceが含まれる。SWTEclipseGUIライブラリ。JavaではなくOSのAPIを直接使用しているため高速。SWTを使用するアプリケーション自身はプラットフォームに依存しない。SWTを使用したアプリケーションは、Eclipseをインストールしていない環境ではやっぱりうごかないんだろうか。JFaceはSWTを使ってさらに高機能なかたまりを提供する?


第3章 Eclipse 3.2+Visual Editor 1.2を使いこなす
EclipseとVisualEditorの具体的な使用方法と設定方法。


第4章 Swingを使用する
Swingを使って簡単な名簿アプリケーションを作成する。その具体的な方法。ボタンやラベルなどはコンポーネントであり、必ずコンポーネントを入れるコンテナが必要。と言っても、SwingではすべてのクラスがContainerクラスを継承している。ウィンドウにはJFrameクラスを使用するのが一般的。
JFrameクラスの上にJPanelを置き、その上にJLabel、JTextField、JTextArea、JListを置いていく。JListはGUIを実現しているだけなので、別途データの中身を表すデータモデルを作成しJListに渡す。


第5章 SWTを使用する
第4章で作った名簿アプリケーションよりもう少し凝ったGUISWTで作成する。Swingでコンテナと呼んでいたものは、SWTではコンポジットと呼ぶ。こういう微妙な言葉の違いが結構物事を分かりづらくするんだよなあ。ウィンドウにはShellクラスを使用する。
ShellにGroupを置き、その上にLabel、CLabel、Text、Button、Combo、Listなどを置いていく。Buttonクラスのインスタンスにスタイルを設定するとラジオボタンやプッシュボタンやチェックボックスなどが作れる。
Eclipseの機能で、メソッドにしたいコードを選択して「リファクタリング」-「メソッドの抽出」を実行するとその部分をメソッドに置き換えることができる。


第6章 JFaceを使用する
第5章で作ったアプリケーションで、ボタンをクリックしたらダイアログボックスが現れるようにする。
ボタンがクリックされると、「ボタンがクリックされた」というイベントが生成されるので、イベントを監視するイベントリスナーを作り登録する。イベントリスナーはイベント処理を行うイベントハンドラーを呼び出す。
データ入力のダイアログボックスをJFaceライブラリのInputDialogクラスで作成する。入力された文字列の長さをチェックするバリデータークラスもJFaceライブラリから作成する。


第7章 ユーザーインターフェースを作成する
蔵書管理アプリケーションのインターフェースをSwingで作成する。ウィンドウを作り、そこにタブ付きペイン、コンボボックス、ラジオボタンチェックボックス、ボタン、テーブル、メニューなどを追加していく。GridBagLayoutを使用してコンポーネントの配置位置を調節する。


第8章 イベントと例外を処理する
第7章で作成したインターフェースのそれぞれのボタンのイベントハンドラを作成しイベントリスナーに登録する。登録データが有効ではなかった時のための例外クラスを作成し、例外が発生したときの処理を追加する。


第9章 データベースに接続する
第8章で作成したインターフェースからデータベースにアクセスできるようにする。
データベースにアクセスするときはJDBCドライバーを使用する。
ここではデータベースにMySQLを使用する。JDBCドライバーはDBMSごとに提供されるので、MySQLを使用する場合はMySQLJDBCドライバーを参照できるように設定する必要がある。
SQLデータベースへのアクセスはSQL命令文を文字列で作成し、その文字列をJDBCドライバーに渡す。