広告

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■
                      2010年12月16日

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

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


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


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

では、Eclipseを起動しましょう。

「使用データ・アップロード」というウインドウが開くことが
ありますが、これはEclipseを開発している組織がEclipseの
使用状況のデータを受け取り、今後の改良などに生かそう
として用意しているものです。

これによって個人情報などが送信されることはありませんが、
心配な人もいるでしょうから、通常はキャンセルしておくとよい
でしょう。



前回HumanResourceEntryPane.javaとHumanResourceJFrame.java
のエディターを開いたままになっている人は、これらをいったん
閉じておいて下さい。

では、これからHumanResourceEntryPaneの編集の続きを行うことに
します。

前々回はHumanResourceJFrameにHumanResourceEntryPaneを貼り付け
ましたが、貼り付けた後でもHumanResourceEntryPaneの編集を続け
ることができるのです。


では、HumanResourceEntryPaneのエディターを開きましょう。

(1) パッケージ・エクスプローラーの中のJStudy1(プロジェクト)の
配下のsrcの配下のjp.co.flsi.lecture.ui(パッケージ)の配下の
HumanResourceEntryPane.javaをダブル・クリックします。
(前回は右クリックしてから「アプリケーションから開く」→
「WindowBuilder Editor」を選択しましたが、一度この操作を行って
おくとその次からはダブル・クリックだけでWindowBuilder Editorが
使用されるようになりますので、右クリックは不要です。)

(2) エディターが開きますので、その下のほうに3つ並んでいるタブのうち
「Design」というタブをクリックします。

(3) しばらく待つと、ビジュアルなエディター画面が表示されます。

「HumanResourceEntryPane.java」タブをダブル・クリックすること
によってエディター画面を最大化しましょう。


┌補足─────────────────────────┐
前回WindowBuilder Proをインストールしましたが、WindowBuilder Editor
はこのWindowBuilder Proが提供しているエディターです。
032号でもお話したようにInstantiations社が今年の8月にGoogle社
に買収されたことにより、現在はGoogle社がWindowBuilder Proを
「無料で」提供しています。
おかげで、この強力なエディターを無料で使うことができるのです。
└───────────────────────────┘


以前、HumanInfoWindowというクラスを作ったときには、生年月日の
入力域は年と月と日で分け、さらに年は明治、大正、昭和、平成、
西暦のどれかを選択して入力できるようにしていましたね。

今回もこれと同じようにしましょう。


まず、明治、大正、昭和、平成、西暦のどれかを選択できるように
するためにJComboBoxというGUI部品を使用することにします。

┌補足─────────────────────────┐
 HumanInfoWindowではChoiceというGUI部品を使いましたね。
 JComboBoxはChoiceに似ていて選択肢をリストすることがで
 きますが、その上にテキストフィールドのような文字列入力
 も可能になっています。
 リストとテキストフィールドの結合体(combo)であることから
 JComboBoxという名前になっています。
└───────────────────────────┘

エディター画面の中央にあるPalette(パレット)のComponentsの中の
JComboBoxをクリックし、マウス・ポインターを「生年月日」のJLabel
とその右側にあるJTextFieldの間に移動してください。
黄色い縦の線が現れると同時に、「column 1, row 3」という位置表示
(そこが1列目の3行目であることを意味する)が出ますね。
(ちなみに、一番左側が0列目で一番上側が0行目なので行列の番号の
数え方を間違えないように注意して下さい。)

そこでクリックしてください。

そうすると、「生年月日」のJLabelとその右側にあるJTextFieldの間に
JComboBoxが貼り付くと同時に今まで1列目に張り付いていたJTextFieldが
すべて2列目に移動しますね。

(Visual Editorの場合は、この時点でBean名を表示するウインドウが
開いて「jComboBox」というような名前を表示したはずですが、
WindowBuilder Proでこれに相当するのは画面左下にある
Properties欄の中のVariableの値です。「comboBox」という名前に
なっているはずですが、このままにしておきましょう。必要があれ
ばいつでも変更することもできます。ちなみにVariableは変数という
意味ですが、実際にVariableの値はソース・コード内で変数名として
使われるものです。)


では、続いて「日」という文字を表示するJLabelをjTextField2の右側に
貼り付けることにしましょう。

パレットのComponentsの中のJLabelをクリックし、マウス・ポイ
ンターをjTextField2の右側に移動し、「column 3, row 3」という
文字列(そこが3列目の3行目であることを意味する)の表示が現れたら
(非常に狭い微妙な位置にあるのでゆっくりと注意しながらマウスを
動かして確認すること)そこをクリックしましょう。

そして、画面左下のProperties欄の中のtextの値(現在「New label」
という値になっているはず)を「日」に変更しましょう。


同様にしてJTextFieldを「日」のJLabelの左側(「日」のJLabelと
jTextField2の間)に貼り付けましょう。
これは、先ほどと同じ3列目の3行目に貼り付けることになりますが、
これを貼り付けると、先ほど「日」のJLabelは4列目の3行目に移動
することになります。

なお、このJTextFiledの幅をセルいっぱいに広げるためには、この
貼り付いているJTextFiledを右クリックし、「Horizontal alignment」
→「Fill」を選択すればいい(あるいは貼り付いているJTextFiledを
クリックすると、画面右上に矢印のアイコンがたくさん表示される
ので、その中から選択してもよい)のですが、これが既存の設定に
なっているはずなので、そのままにしておけばいいです。


同様にして「月」という文字を表示するJLabelを先ほどのJTextFieldの
左側に貼り付けてください。

つまり、先ほどと同じ3列目の3行目に貼り付けます。
そして、ラベル(textプロパティー)を「月」にします。


同様にしてJTextFieldをその「月」のJLabelの左側に貼り付けましょう。

つまり、先ほどと同じ3列目の3行目に貼り付けます。
このJTextFiledの幅もデフォルトでセルいっぱいに広がっているはず
ですので、そのままにしておきましょう。


同様にして「年」という文字を表示するJLabelを先ほどのJTextFieldの左側
に貼り付けてください。

つまり、先ほどと同じ3列目の3行目に貼り付けます。
ラベル(textプロパティー)を「年」にします。


「社員番号」の行に張り付いているJTextFieldと氏名の行に張り付いてい
るJTextFieldは現在2列目にありますね。
これらを横長に複数のセルにまたがらせることにしましょう。

まず「社員番号」の行に張り付いているJTextFieldを一回クリックする
ことによって選択状態(赤い枠線が表示される状態)にします。

このときその枠線の各所にハンドル(黒い枠線の内側が緑色をしている
小さな四角形)が表示されていますが、そのうちの左端のハンドルを
ドラッグして1つ左の列、つまり1列目の1行目でドロップ(マウスのボタン
から指を離す)します。

すると、このJTextFieldが1列目の1行目から2列目の1行目までまたがった
状態になりますね。つまり、2つのセルにまたがって配置された状態になり
ます。


続いて「氏名」の行に張り付いているJTextFieldも同様に一回クリックする
ことによって選択状態にしてから、左端のハンドルをドラッグして1つ左の列、
つまり1列目の2行目でドロップします。

すると、このJTextFieldが1列目の2行目から2列目の2行目までまたがった
状態になりますね。

次に、このJTextFieldの右端にあるハンドルをドラッグして7列目(7列目の2行目)
でドロップします。

そうすると、このJTextFieldが1列目から7列目までの7つのセルにまたがって
配置されますね。


0行目の「以下を入力してください。」のJLabelも同様に操作して、0列目
(つまり0列目の0行目)から7列目(つまり7列目の0行目)まで8つのセルに
またがるように配置してみてください。


では、保管(Ctrl + S)をしてから、「HumanResourceEntryPane.java」タブ
をダブル・クリックすることによってエディターの画面サイズを元に戻して
おきましょう。


続いて、前々回と同じくHumanResourceJFrameを実行してみてください。

HumanResourceEntryPaneの変更内容がHumanResourceJFrameにもちゃんと
反映されていることがわかりますね。

では、実行しているHumanResourceJFrameのウインドウの幅を広げてみて
ください(面倒な人はウインドウを最大化してください。)。

中のテキストフィールドの幅はすべて全体のウインドウの幅に合わせて
広がるのに対し、「年」「月」「日」などのラベルは広がらず固定されて
いますね。


次回はここらへんのGUI部品の幅(あるいは高さ)の伸縮や固定の指定方法
から説明を続けていきます。


(続く・・・)

では、また来週。



┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
★ホームページ:
      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) 2010 Future Lifestyle Inc. 不許無断複製