Java の Swing とは?
Java の Swing の登場の背景
Java の GUI プログラミングフレームワークとしてはじめに提供されたのは AWT (Abstract Windows Toolkit) です。 AWT では、テキストボックスやボタンなどのウィンドウのコンポーネントは、OS に機能を利用していました。 つまり、AWT のテキストボックスは、OS (実行環境) におけるそれと同等のもの (これを Peer といいます) にマップされ、 Peer が処理を行っていました。
しかしながら、こうした Peer ベースの構成では、OS によって微妙に動作が異なったり、 OS 毎の不具合がそのまま Java アプリケーションにも現れるなどの問題が発生しました。 また、どの環境にも同一の基本的なコンポーネントのみがサポートされるという問題もありました。
本来 Java は、一度書いたらどこでも同じように動くことをその理念としています。Write Once, Run Anywhere. というやつです。
しかし、AWT では実行環境毎に動作が変わり、それぞれの環境の不具合に対応しなければならないために、 Write Once, Debug Anywhere. などと揶揄されました。
こうして、Peer に頼らないアーキテクチャが必要とされました。 そこで現れたのが Swing です。
Java の Swing とは
Swing は Java の GUI 構築のためのフレームワークです。
Swing は OS の GUI コンポーネントに頼らずに独自に GUI コンポーネントを描画しているので、 実行環境の違いがなく、さらに実行環境で用意されている以上の GUI コンポーネントが利用可能となります。
その反面、OS ネイティブのコンポーネントではなくなるために動作速度が遅いなどの欠点があります。 しかしながら、近年のハードウェアの進化などに伴い、動作速度の問題は大きなものではなくなってきていると言われています。