ピアとは


AWTとピア

Java言語でGUIを建築するには、AWTとピアの関係が重要です
AWT (Abstract Window Toolkit) はJava言語でGUIの建築をサポートするパッケージです
つまり、JavaでGUIを建築するにはAWTの知識が必要となります

まず、これからのために覚えてほしいJava用語ですが
Java言語では、GUIのボタンやスクローラなどのオブジェクトをコンポーネントと呼びます
Windows プラットフォームで言う「コントロール」に相当します

Javaはプラットフォーム非依存言語です
Javaが依存するのはJVMであり、JVMがある環境であれば全てが同じ計算結果を出します
これはGUIになっても同じことであり、Javaのグラフィカル操作はMacでもWin32でもX Windowでも動作します

さらにAWTはプラットフォーム依存のウィンドウ操作やAPIを意識することなく建築することができます
AWTが提供するこのコンポーネント・クラス郡の機能をピアと呼びます
ピアはネイティブなGUIコンポーネントであり、AWTは実行時のプラットフォームのピアを生成します
つまり、JavaプログラムがAWTコンポーネントを生成し、さらにそのコンポーネントがピアを生成しているのです
だからこそ、プラットフォームに依存することのないGUIプログラムを建築できるのです
(ただし、絶対ではない。その動作はSunのサイトなどの情報を元に正確に把握したほうが良いでしょう)

ピアは、プラットフォームの API を Java が呼び出すことで実現しています
そのため、コンポーネントのルックアンドフィール(概観)は
ネイティブなプラットフォームに依存してしまい、様々な弱点も存在します
しかし、見た目の問題はレイアウトマネージャが抽象化してくれることでしょう

この問題は、Swing というコンポーネントの登場で解決されました
Swing は抽象的な Java コンポーネントに対して Java で描画することによって
ピアに依存することなく、完全にその機能を抽象化してしまうことで
プラットフォームに依存しないルックアンドフィールを実現しているのです
Swing については、「Swing 編」を参照してください


アプレットとは

アプレットは、おそらくJavaの中でもっとも一般的なプログラムでしょう
Javaはアプレットのため言語ではなく、アプレットがjava言語の機能の一部なのですが
実際はアプレットを目的でJava言語を学ばれる方も多いのではないかと思います
(Java == アプレットという方がいてもおかしくないくらい、アプレットは普及しています)

筆者はスタンドアロンJavaのほうが好きですが
アプレットもまた、Javaの最大の魅力のひとつといえます

アプレットはWeb上で動作するJavaプログラムであり
ブラウザに搭載されたJVMにより実行されます
近年までJVMは、インタプリンタであることから動作速度などの指摘がありましたが
コンピュータの向上と通信速度の向上により、そんなものは時間の問題となっています

アプレットはサンドボックスと呼ばれる中でプログラムしなければなりません
Web上でユーザーの意思にかかわらず実行されるため、セキュリティの範囲でしか動けないのです
そのため、基本的にファイル操作や他のマシンへの接続などのコードは実行できません
しかし、Web上で動的な画像操作や高度なイベント処理ができるため、実用性は高いといえます

この講座では、Java言語によるグラフィカル操作をアプレットから学んでいきます
Webページをより飾ることができるだけではなく、ブラウザやプラットフォーム完全互換です
JVMが実行できるブラウザならば、全ての環境で同じ動作が(論理的に)保証されるのです
これが、JavaScriptやVBSとの大きな違いのひとつといえます



戻る次のページへ