見出し画像

Swingによるデスクトップアプリケーション開発(No2.BMI診断)-JavaSE1.8

Java8のSwing環境でデスクトップアプリケーションの開発方法を学ぶ講座をシリーズで提供しています。2回目はWindowBuilder(Swingデザイナー)を使ってBMI診断アプリケーションを作成します。BMI診断とは身長と体重からボディマス指数(BMI)を算出して体型(肥満度)を診断するものです。

2024年9月よりECLIPSEのバージョンを最新版(Version: 2024-06 (4.32.0))に変更しました。


外部設計

WindowBuilderのSwingデザイナーで図1のようなGUIを作成します。

図1.HealthCheckアプリケーションのGUI画面

内部設計

処理ロジック

BMI診断ボタンをクリックすることでアクションイベントが発生し、BMIを算出する処理ロジックを実装したメソッドが起動する。

BMI処理ロジック
1.
BMI値を計算する。
 BMI=体重(Kg)÷(身長(m)×身長(m))※新著の単位はcmではなくmである

2.算出したBMI値から次の基準で体形(肥満度)を判定する。
 BMI値が18.5未満の場合は体型は「やせ型」
 BMI値が18.5以上で25未満の場合は体型は「普通」
 BMI値が25以上の場合は体型は「肥満」

実装準備

プロジェクトの作成

Eclipseのメニューバーより
ファイル→新規→Javaプロジェクト→「HealthCheck」プロジェクトを作成
→図2の内容で設定する

※以下画面のスクリーンショットはライトテーマで取得します。
(ライトテーマの設定方法)
Eclipseのメニューバーより
 ウィンドウ → 設定 → 一般 → 外観 → ルック&フィール → ライト
 → 適用して閉じる → Eclipseの再起動がかかります 

図2.HealthCheckプロジェクト設定

※作成済みであればこの処理は必要ありません。

実装

ひな形の作成

WindowBuilderを用いてSwingアプリケーションのスケルトン(骨格)を自動生成させます。

Eclipseパッケージ・エクスプローラより
HealthCheckプロジェクトを右クリック→新規→その他 → WindowBuilder
→ Swingデザイナー → JFrameを選択 → 次へ

図3.JFrameウィザードの選択

以下の内容で作成
  パッケージ:jp.ict.aso.swing
  名前:HealthCheck

図4.Swingアプリケーションの生成

GUI実装

自動生成されたプログラム(スケルトン)からGUIのデザインを実装します。

①画面中央下部にあるデザインタブでソースコード編集画面からSwingデザイナーに切り替えます。

図5.Swingデザイナーに切り替え

②contentPaneのLayoutプロパティをBorderLayoutに設定します。

図6.コンテントペインの設定

③contentPaneの「North」の位置にGUI部品のJPanelをパレットから配置します。JPanelのLayoutプロパティはGridLayoutとします。

図7.JPanelの設定

④JPanelのLayoutプロパティを + マークから展開しcolumnsを3に、rowsを2に設定します。

図8.列と行の設定

⑤JPanelにGUI部品のJLabel、JTextFieldを順番にパレットから配置します。それぞれのtextプロパティを図9のように変更します。

図9.ラベルとテキストフィールドの配置とテキストの設定

⑥contentPaneの「Center」の位置にGUI部品のJLabelをパレットから配置します。あわせてtextプロパティも「BMI診断結果?」に変更します。

図10.BMI診断結果ラベルの配置

⑦contentPaneの「South」の位置にGUI部品のJButtonをパレットから配置します。あわせてtextプロパティも「BMI診断実行」に変更します。

図11.BMI診断実行ボタンの配置

⑩ボタンにイベントリスナーを対応付けます。パレットのSwingActions内にある「新規」のリスナーを選択してボタンをクリックすることで対応付けられます。

図12.イベントリスナーの対応付け

イベント実装

ソースタブに変更します。

図13.ソースタブに変更

①「BMI診断実行ボタン」のイベントのソース部分を変更します。

図14.BMI診断実行ボタンのイベント内容

②フィールド変数を変更します。//kokoの部分を追加します。

図15.フィールド変数の変更

③ローカル変数の宣言になっている部分を変更します。//kokoの部分を変更します。

図16.ローカル変数の宣言変更

④実行確認します。エディタの画面内で右クリック → 実行 → Javaアプリケーションで実行されます。

図17.実行方法

⑥BMI診断実行ボタンのクリックで結果が表示されるか確認します。

図18.BMI診断結果の表示

ここまでの実装ではいろいろと不具合があるようです。
とりあえず「タイトルがない」「画面の大きさが任意に変えられてしまう」の2点を修正します。

実装変更

①フレームにタイトルを追加します。//kokoの部分を追加します。

図19.タイトルの追加

②画面(フレーム)の大きさを固定します。//kokoの部分を追加します。

図20.画面サイズの固定

③実行して動きを確認します。これで完成しました。

図21.BMI診断アプリーケーション完成

単独起動

実行可能JARファイル

①せっかくですので、単独で起動できるアプリケーションにエクスポートしましょう。Java1.8以上のJREの環境がWindowsのPCにインストールされていればダブルクリックで起動できます。

Eclipseパッケージ・エクスプローラより
HealthCheckプロジェクトを右クリック → エクスポート
→ Java → 実行可能JARファイル → 次へ
→ 以下のように設定する → 完了

図22.実行可能JARファイルの設定

以下のような警告が出る場合がありますが、気にしません。

図23.警告ダイアログ


作成されたjarファイルをダブルクリックするとカレンダーが起動します。

図24.実行可能JARファイル

最後に

以上でSwingデザイナーを使って身長と体重からBMI値を計算するデスクトップアプリケーションを作成できました。

次回は、外部クラスを利用してカレンダーを作成するGUIプログラムを作成します。

この記事が気に入ったらサポートをしてみませんか?