広告

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■
                      2011年02月21日

    Java総合講座 - 初心者から達人へのパスポート
                  2009年11月開講コース 040号

                                セルゲイ・ランダウ
 バックナンバー: http://www.flsi.co.jp/Java_text/
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■


-------------------------------------------------------
・現在、このメールマガジンは以下の2部構成になっています。
[1] 当初からのコース:vol.xxx(xxxは番号)が振られています。
   これは現在、中級レベルになっています。
[2] 2009年11月開講コース:xxx号(xxxは番号)が振られています。
   これは現在、初心者向けのレベルになっています。
・このメールマガジンは、画面を最大化して見てください。
小さな画面で見ていると、不適切な位置で行が切れてしまう
など、問題を起すことがあります。
・このメールマガジンに掲載されているソース・コード及び
文章は特に断らない限り、すべて筆者が著作権を所有してい
ます。また、これらのソース・コードは学習用のためだけに
提供しているものです。
-------------------------------------------------------


========================================================
◆ 01.データベースを使用するアプリケーションの開発(続き)
========================================================

では、さらにアプリケーションの開発を続けていきましょう。

現在作成しているHumanResourceEntryPaneの新規登録の画面は、
社員(新入社員)の人事情報の新規登録のためのものです。

この登録は、画面上に入力されたデータをデータベースの
EMPLOYEEテーブルに書き込むことによって行います。

そのために、この画面に「登録」というボタンを貼り付けておく
ことにします。
つまり、この「登録」ボタンがクリックされたら、入力されたデータ
をEMPLOYEEテーブルに書き込むことにします。


┌───────────────────────────┐
     JButtonの貼り付け
└───────────────────────────┘

ボタン(JButton)の貼り付けには注意が必要です。

GridBagLayout等を使用している場合、ボタンの貼り付け位置が
JTextFieldやJComboBoxなどの他のコンポーネントの位置に依存
してしまうと、きれいに貼り付けることが困難になります(ボタン
の位置がJTextFieldやJComboBoxの位置と揃ってしまうと、体裁が悪く
なります)。

ボタンは他のコンポーネントとは独立したレイアウトで貼り付ける
べきなのです。

こういうときに役に立つのが、「コンテナーはコンポーネントの一種
である」という仕組みです。

JPanelはコンテナーであり、コンポーネントを貼り付ける土台となる
ものですが、コンテナーは同時にコンポーネントの一種でもあるわけ
ですから、JPanelの上にJPanelを貼り付けることもできるのです。

そこで、HumanResourceEntryPaneのJPanelの上に、さらに別のJPanel
を貼り付けて、これをボタン(JButton)の土台にします。

実際に、Eclipseで作業をしてみましょう。

Eclipseを起動し、HumanResourceEntryPane.javaのエディター
(WindowBuilder Editor)を開いてください。

そして「Design」タブをクリックすることによって、デザイン画面
を開きます。
また、「HumanResourceEntryPane.java」タブをダブル・クリック
することによって、デザイン画面を最大化しておきましょう。


エディター画面の中央にあるPalette(パレット)のContainersの中の
JPanelを選択(クリック)し、0列目の5行目(「column 0, row 5」と
表示される位置)に貼り付け(クリック)してください。

左側のProperties欄を見ると、Variable(変数名)がpanelになって
いることを確認してください。

この貼りついたpanelの周囲に表示されているハンドルのうち、右端
のハンドルをドラッグして、その行の一番右側のセルでドロップ
(マウスのボタンから手を離す)します。(所属部署のJComboBox
を貼り付けたときと同じ要領です。)

これでpanelが8個のセルいっぱいに広がりましたね



次に、JButtonを貼り付けましょう

Palette(パレット)のComponentsからJButton選択し、先ほどのpanel
に貼り付けてください。

左側のProperties欄を見ると、Variable(変数名)がbuttonになって
いることを確認してください。


そして、Properties欄の中のtextプロパティーの値をNew buttonから
登録
に書き換えましょう。(入力し、漢字変換を確定した後、再度Enterキー
を打って下さい。)
すると、ボタンに「登録」という文字が表示されますね。

このままだと、この「登録」ボタンは「所属部署」のJComboBoxにピタリと
くっついていて見苦しいですね。

このbuttonが貼りついている土台になっている(先ほど貼り付けた)panel
をクリックし、Properties欄に並んでいるアイコンのうち「show advanced
properties」(マウス・ポインターを乗せるとこの文字列が表示される)の
アイコンをクリックすると(するとそのアイコンが凹んだ状態になり)、
preferredSizeというプロパティーが現れます(リストの中の下から7番目
あたり)ので、その値を
120,40
くらいに変更(その右端の[・・・]のマークのボタンをクリックして変更
)してみて下さい。
また、Layoutの配下のvgapの値を10に増やしてみて下さい。

これで、ボタンの周囲にスペースができましたね。

ついでに一番上の「以下を入力してください。」のラベルの
下にも少しスペースを空けてバランスを取ることにしましょう。

「以下を入力してください。」のラベルをクリックし、Properties欄
のConstraintsの配下のinsetsの右端の[・・・]のマークのボタンを
クリックし、「下」欄の数字を
10
に変更して「OK」ボタンをクリックします。

これで、「以下を入力してください。」のラベルの下に少しスペース
が空きましたね。


では次に、このボタンをクリックしたら(画面に入力した)データをデータ
ベースに書き込むようにするために(010号などでお話した)ActionListener
のactionPerformed()メソッドを実装しましょう。

「登録」ボタンを右クリックし、「Add event handler」→「アクション」
→「actionPerformed」を選択すると、getButton()メソッドの中に

--------------------------------------------------------
         button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
            }
         });
--------------------------------------------------------

というソース・コードが自動挿入されます。

この自動挿入されたコードでは、ActionListenerインターフェースを実装した
無名クラスを作成し、そのインスタンスをaddActionListener()メソッドの実行
によって、「登録」ボタンのリスナーとして登録しています。
(無名クラスは以前009号でも登場しましたが、上記のようにインスタンス生成
とメソッドの定義を同時に書き記したコードによって、クラス名の無いクラスを
定義し、その場でインスタンス生成するものです。)

この自動挿入されたソース・コードの中のactionPerformed()メソッドの中では
何もしていませんが、ここに実際に実行したいコードを書き込んでやる必要が
あります。

ここでは、各JTextFieldに入力された値やJComboBoxで選択された値を使って
EMPLOYEEテーブルに追加するデータを作成し、データベースに書き込む、と
いう操作を実行したいので、そのためのコードを書き込んでいきます。

(次回に続く)



では、また来週。



┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
★ホームページ:
      http://www.flsi.co.jp/Java_text/
★このメールマガジンは
     「まぐまぐ(http://www.mag2.com)」
 を利用して発行しています。
★バックナンバーは
      http://www.flsi.co.jp/Java_text/
 にあります。
★このメールマガジンの登録/解除は下記Webページでできます。
      http://www.mag2.com/m/0000193915.html
★このメールマガジンへの質問は下記Webページにて受け付けて
 います。わからない所がありましたら、どしどしと質問をお寄
 せください。
      http://www.flsi.co.jp/Java_text/
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Copyright (C) 2011 Future Lifestyle Inc. 不許無断複製