プログラミング

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

期末試験の季節ですね!

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

Swingとは

Swingは、プログラミング言語 Java のGUIツールキットである。Oracle社のJava Foundation Classesの一部であり、同じくJavaの GUI ツールキットである 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がまだ採用されている企業が多いのはこの理由からなんですかね?

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の極意

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

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

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

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

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

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

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

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

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

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

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