データサイエンティストハトリのブログ

PythonとインテリジェントクラウドとAIが好きな学生エンジニア。データ分析、スクレイピング、就職活動などについて書いていきます。

Java Swingを使ったGUIアプリ作成のおすすめ参考書と勉強法

 

f:id:hatorihatorihatorik:20180929132234j:plain

 

こんにちは、どうもハトリです!!

 

TwitterでプログラミングやIT関連のことについてつぶやいているのでよかったら是非フォローしてください →→(@tori_engineer)

 

 

 

期末試験の季節ですね!

 

先日、大学の授業でJavaの授業があるのですが課題が出されました。内容は、Swingを使って「衣装の貸し借りアプリケーション」を作りなさいというもの。早速本屋さんにいってSwingの本を探したものの全くありませんでした。なかなか調べても情報が出てこないし、宿題ださないと単位こないし、単位こないと留年しちゃうしとにかくやるしかない!と思い鬼のようの頑張ったので紹介します。

 

Swingとは

 

Swingは、プログラミング言語 JavaGUIツールキットである。Oracle社のJava Foundation Classesの一部であり、同じくJavaGUI ツールキットである AWT を拡張したもの。Javaプログラムにグラフィカルユーザインタフェース(GUI)を提供するAPIである。

参考: Swing - Wikipedia

 

GUIっていうのはCUIと逆の意味で、ターミナルみたいな文字だけ羅列してある画面じゃなくて、いつも使ってるパソコンみたいに画面があってキーボードとマウスを使ってクリックしたりしてパソコンに命令を出す方法のこと。

 

これをHTMLとかCSSとかじゃなくてJavaでやりましょう。っていうことです。

Swingが使われている(いた?)理由

f:id:hatorihatorihatorik:20180930031349j:plain

GUI設定が簡単

画像ファイルを貼り付けたり、グラフィックを自分で描写するのが簡単にできるし、たくさんクラスライブラリが整ってるので、GUIの細かいところまで設定ができます。

 

と!言われていますが、実際そんな簡単か?というのが個人的な意見です。似たような作り方をするSwiftも経験したことがありますし、もちろんHTML, CSSも使ったことがありますが、Swingが特別簡単だとは思いませんでした。

クロスプラットフォームである

Javaという言語はどのOSでも動くハイテクな言語です。Javaは言語自身が仮想環境みたいなものを作り出して動いているので、MacでもWindowsでもLinuxでも、どんな環境でも動くらしいです。

 

これはJavaのもっともいいところですね!RailsとかだとWindowsでやるのは一苦労だと思います。Javaがまだ採用されている企業が多いのはこの理由からなんですかね?

 

furien.jp

Swing廃止

f:id:hatorihatorihatorik:20180930023842j:plain

google検索で「Swing」と調べると、候補に「Swing 廃止」と出てきて気になったので調べてみました。

 

これまで、Javaでデスクトップアプリケーションを開発する際、GUIライブラリとして利用されてきたのは「AWT」と「Swing」でした。といっても、AWTはGUIの基本として用意されているだけで、実際に活用されていたのはそれをベースに構築されたSwingだった、といってよいでしょう。Swingは長らくJavaの標準GUIとして広く使われてきました。

が、Java8になって、新しい「JavaFX」が標準装備され、SwingからJavaFXへの切り替えが確定しました。もちろん、当面はSwingも共存しますのですぐになくなることはありませんが、いずれSwingが廃止されJavaFXに一本化するのはほぼ決まりのようです。(これは現在、Javaの開発を手がけるオラクルのWebサイトに明記されています。

 

参考: JavFXアプリケーションの基本コード(1/6):初心者のためのJavaFXプログラミング入門 - libro

 

JavaFXというものに置き換わっているみたいですね。しかし、現在でもまだ学校の授業でこのSwingが使われているところは結構あるみたいです!

 

Swingの勉強法 

f:id:hatorihatorihatorik:20180928232006j:plain

 

でも、Swingはぐぐってもあんまり情報がでてこないです。でてきてもレベルの高いはなしばかりしてて理解できない人も多いと思います。できれば基礎から体系的に学びたいですよね。自分もそういう勉強法を取るタイプだったのでかなり苦しみました。

 

結果、本を買おう!ということに。基礎から体系的にわかりやすくSwingのことが学ぶことができる書籍をまとめてみました。

おすすめ参考書 

[増補改訂版]最新Java逆引き大全550の極意 

[増補改訂版]最新Java逆引き大全550の極意 

SwingだけでなくJava関連の内容を幅広く学ぶことができます。

 

いろんなサンプルコードも書いてあるので、かなりつかえます。コマンドラインアプリ、アプレット、AWT、Swing、 データベース、JSPサーブレットiアプリJBuilderEclipseなどさまざまなアプリを作っていくので、Javaの汎用性の高さが実感できます。

内容の深さはそれほどないですが、初心者でとにかく早くなにかしらアプリが作れればいいっていう方におすすめです。

 

 Javaアプリケーション作成講座―Swingプログラミング徹底攻略

Javaアプリケーション作成講座―Swingプログラミング徹底攻略

 Swingに特化した本です。基礎から応用までしっかりと学ぶことができます。

 

個人的にかなり良書だと思っています。

いまは絶版になってしまったそうですが、Amazonで中古の商品なら買うことができます。もう手に入らないプレミアですのでなくならないうちに早めに購入することをお勧めします。

 Java GUIプログラミング〈Vol.3〉さらにパワーアップしたSwing

 

Java GUIプログラミング〈Vol.3〉さらにパワーアップしたSwing

 

Swingの定番と言える本でしょう。

vol1,vol2 もあり全てやるとSwingをかなり理解できます。CDもついていてわかりやすくなっているので一番おすすめです。

 

金額がかなり上がりますが、vol1,vol2も合わせてやっておくと完璧かも。サンプルコードもたくさんあるので宿題はこれで片付けましょう!

 

Java Swing Hacks ―今日から使える驚きのGUIプログラミング集

  

Java Swing Hacks ―今日から使える驚きのGUIプログラミング集

 

 先ほど紹介した3つよりも1つレベルが上の書籍になります。

 

表面的なSwingやJavaの使い方ではなく、GUIの表現方法を最大限に活かせるようなSwingの使い方が紹介されています。

よりレベルの高いアプリ作成を要求される方は必須のアイテムです。