広告

■□■□■□■□■□■□■□■□■□■□■□■□■□■□■
                      2010年12月28日

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

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


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


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

それでは、またEclipseを起動してHumanResourceEntryPane.javaの
エディター(WindowBuilder Editor)を開きましょう。
(前回WindowBuilder Editorを指定して開きましたから、その後は
たんにダブル・クリックだけでWindowBuilder Editorが開きます。)

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


前回は、「年」「月」「日」の各テキストフィールド(「年」「月」
「日」の各ラベルの左側のテキストフィールド)の幅がみな同じに
なっていたと思いますが、ここらへんの幅をちょっと変えてみま
しょう。

「年」のラベル(JLabel)をクリックし、画面左下のほうにある
(位置を変えられるので必ず画面左下のほうにあるという保証は
ないが)「Properties」欄の中のConstraintsの配下にあるweightx
とweightyを見て下さい。
これらの値はそれぞれ0.0になっていると思います。
(ちなみに「月」や「日」などのラベルでも同様に0.0になっていますね。)


では、続いて「年」のラベルの左側のテキストフィールド(JTextField)
をクリックしましょう。

そこで、先ほどのweightxとweightyの欄を見ると、weightxの値が1.0
になっていますね。(なっていなくてもいいですが)これを2.0に書き
換えてみて下さい。

同様に、「月」のラベルの左側のテキストフィールドや「日」のラベル
の左側のテキストフィールドはweightxの欄の値を1.0に書き換えて
下さい。

すると、「年」のテキストフィールド(「年」のラベルの左側のテキスト
フィールド)は「月」や「日」のテキストフィールドの2倍の幅になりま
すね。このように、GridBagLayoutを設定したコンテナーの中では、
貼り付けたGUI部品の幅は互いのConstrantsのweightxの比率によって
調整されます。

ちなみにweightxというのはX軸方向(横方向)の大きさの重みづけを
意味し、weightyはY軸方向(縦方向)の大きさの重みづけを意味し
ます。GridBagLayoutでは、この重みづけの比率によってGUI部品幅の
伸縮を調整するのです。

では一度保管(Ctrl + S)しておきましょう。


では次にJComboBox(「生年月日」ラベルの右側にあるもの)に
「明治」「大正」「昭和」「平成」「西暦」の文字列を項目として
追加しましょう。

張り付いているJComboBox(「生年月日」ラベルの右側にある)を
クリックしてから、エディター左下の「Source」タブをクリックして
ソース編集画面に切り替えましょう。

すると、

----------------------------------------------
   private JComboBox getComboBox() {
      if (comboBox == null) {
         comboBox = new JComboBox();
      }
      return comboBox;
   }
----------------------------------------------

の部分の中にカーソルが入っていますね。

ここのソース・コードを見ると、以前説明した遅延生成のテクニッ
クによってインスタンス生成が行われていることがわかりますね。

この中のインスタンス生成の下に以下のコード
----------------------------------------------
         comboBox.addItem("明治");
         comboBox.addItem("大正");
         comboBox.addItem("昭和");
         comboBox.addItem("平成");
         comboBox.addItem("西暦");
----------------------------------------------
を入力してください。addItem( )はJComboBoxに項目を追加するため
のメソッドです。

入力後のコードは

----------------------------------------------
   private JComboBox getComboBox() {
      if (comboBox == null) {
         comboBox = new JComboBox();
         comboBox.addItem("明治");
         comboBox.addItem("大正");
         comboBox.addItem("昭和");
         comboBox.addItem("平成");
         comboBox.addItem("西暦");
      }
      return comboBox;
   }
----------------------------------------------

のようになります。


では、一度保管してからHumanResourceJFrameを実行してみましょう。

JComboBoxに「明治」「大正」「昭和」「平成」「西暦」の項目が組み
込まれたことが確認できますね。


(続く・・・)

では、また来週。



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