うめすこんぶ

日々のプログラミングで残しておきたいメモ.何かの役に立てれば幸いです.

「SwingDesigner」でSwingアプリケーションをつくろう! その2~アプリケーション新規作成とコンポーネント配置

スポンサーリンク

前回の続き.eclipse用のプラグインSwingDesignerでjavaのウインドウアプリケーションを 作ってみましょう. 題材として,簡単なテキスト・エディターを作成してみます.

ポイント

SwingDesignerの設定

今後の開発のためにまず設定をします. ボタンなどのコンポーネントをローカル変数ではなくクラスのフィールドにする設定をします.

やり方

ウインドウ→設定→左の項目からWindowsBuilderを選択→Swing→コード生成

→「フィールド」をクリックしてチェック→OK

新規アプリケーションを作成する

  1. ファイル→新規→Javaプロジェクト
  2. 出てきたウインドウで,プロジェクト名を入力し完了ボタン.
  3. ファイル→新規→その他→WindowsBuilder→SwingDesigner→アプリケーションウインドウ これで,アプリケーションのメインとなるクラスを新規作成.
  4. 出てきたウインドウで,名前を入力し完了ボタン.ソースが作成されます.
  5. 実行してみる…メニューから,実行→実行でアプリケーションが立ち上がることを確認します.

以降は,図中の赤枠のDesignタブを選択してGUIを作っていきましょう.

f:id:konbu13:20131225225629p:plain

レイアウト設定

コンポーネントのレイアウト設定というのがありますが,絶対レイアウトがおすすめです. 絶対レイアウトなら,他のレイアウト設定と違い,自分でコンポーネントの位置と大きさを 好きに設定できるからです.

絶対レイアウトにするやり方
  1. getContentPane()をクリック
  2. 下のプロパティ画面で,「Layout」の項目のところの下三角をクリックして値を 絶対レイアウトに変更.

f:id:konbu13:20131227162840j:plain

コンポーネントの設置方法

各種コンポーネントPallet欄の素材をマウスクリックで選択し,ウインドウにおいていきます. では,ラベルを配置してみましょう.

  1. 真ん中のPaletteのフォルダ内のJLabelという名前をクリック f:id:konbu13:20131228162325j:plain
  2. 右側のウインドウにマウスを持ってきて,もう一度クリックで配置.
  3. ソースに戻り,新しいメンバ変数ができてることを確認:
private JLabel lblNewLabel;
  1. また,ラベルのクラスがinitialize()内で初期化されています.
lblNewLabel = new JLabel("New label"); // ラベルを初期化
frame.getContentPane().add(lblNewLabel);

こんなかんじでボタン(JButton)も配置してみましょう.

コンポーネントの大きさ調整

フレーム(frame)が絶対レイアウトなら,ラベルなどの大きさをでかくしたり,小さくしたりも出来ます. 配置されたラベルをクリックすると,黒の枠が出ますので調整してみます.

注意:

たまに変な方に拡大すると図のようにコンポーネントが見えなくなりますが,これは負の方向に調整しているからです. f:id:konbu13:20131228163007j:plain

ソースを見てみると,

btnNewButton.setBounds(214, 5, -18, -16);

のように負の値が入れてあります.調整の方向に注意してくださいね.

実行

実行してみますと,こんな画面がでればOKです. ラベルとボタンが表示されてます.

次回は,ボタンにファイルを開く機能を付けてみます.