「駑馬十駕」を信念に IT系情報を中心に調べた事をコツコツ綴っています。

Javaのデスクトップアプリ(Swing)から、REST API を呼び出したいケースは意外と多くあります。
例えば以下のような用途です。

  • 社内ツールからWeb APIを呼び出す

  • Swing画面でボタンを押したら外部サービスと通信する

  • APIの結果を画面に表示する簡易クライアントを作りたい

本記事では、Swing画面のボタン操作をトリガーに REST API を呼び出す基本サンプルを紹介します。

Java:Swing画面からREST APIを呼び出すサンプル構成図


使用する構成

  • Java:Java 11 以上

  • GUI:Swing

  • HTTP通信:java.net.http.HttpClient(標準API)

  • API:JSON を返す REST API(サンプル用)


全体イメージ

  1. Swing画面を表示

  2. ボタンをクリック

  3. REST API を呼び出す

  4. レスポンスをテキストエリアに表示


サンプル画面の構成

  • ボタン:API呼び出し

  • テキストエリア:レスポンス表示


Swing画面のサンプルコード


コード解説(重要ポイント)

① HttpClient を使用してREST APIを呼び出す

Java 11 以降では、HttpURLConnection よりも
HttpClient の使用が推奨されています。


② Swingのイベントディスパッチスレッド(EDT)に注意

Swingでは以下が非常に重要です。

  • 通信処理はEDTで実行しない

  • 画面更新はEDTで実行する

そのため、以下のように分けています。

  • API呼び出し → new Thread(...)

  • 画面更新 → SwingUtilities.invokeLater(...)

これを守らないと、

  • 画面がフリーズする

  • ランダムに例外が出る

といった不具合につながります。


POSTリクエストの例(参考)


よくあるハマりポイント

問題原因
ボタンを押すと画面が固まるEDTで通信している
レスポンスは取れているのに画面に表示されないEDT外でUI更新
SSLエラーが出る証明書未登録・プロキシ環境

まとめ

  • SwingからREST APIを呼び出すことは可能

  • 通信は別スレッド、UI更新はEDTが鉄則

  • Java 11 以降なら HttpClient がシンプルでおすすめ

Swingの社内ツールや簡易クライアントを作る際の参考になれば幸いです。

0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る

Ads by Google

0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る
0
あなたの考えが大好きです、コメントしてください。x