Java

JavaTM 2 SDK, v1.3 での AWT の拡張

ドキュメントの目次
バージョン 1.3 の Java 2 SDK では、次の AWT の機能が追加されています。
新しいクラス java.awt.Robot
描画イベントと呼び出しイベントのための新しいイベントマスク
描画 (Paint) の統合
印刷 API の拡張
コンポーネント階層に対する変更を追跡するための新しいイベント型
AWT Native Interface

新しいクラス java.awt.Robot
java.awt.Robot という新しいクラスが、JavaTM 2 プラットフォームに追加されました。Robot API は、自動化された AWT および Swing をテストできるように設計されています。Robot API では、Java プログラミング言語で記述されたコードを使用して、低レベルのネイティブマウスおよびネイティブキーボードの入力イベントを生成できます。これらのイベントは、Java イベントキューまたはコンポーネントレベルではなく、オペレーティングシステムレベルで生成されるため、その他の AWT イベント (ネイティブコードおよび Java 言語を含む) に対する実際のユーザ入力と区別することができます。

Robot API はテスト用に設計されていますが、次の利点もあります。

描画イベントと呼び出しイベントのための新しいイベントマスク

PAINT_EVENT_MASK および INVOCATION_EVENT_MASK という新しい final static フィールド が、クラス AWTEvent に追加されました。これらのフィールドを addAWTEventListener() で使用すると、クライアントアプリケーションで描画イベントおよび呼び出しイベントを待機することができます。

描画 (Paint) の統合

描画の実装を統合することによって、描画のパフォーマンスが向上しました。再描画が必要な領域は、イベントキューに送られるときに、矩形以外の単一の再描画領域に統合されます。この結果、再描画のバッチ処理、および複数の再描画の同時実行を行うことができます。以前は、再描画領域が重なっている場合でも、描画イベントはキューに登録されてから順番に実行されていました。

印刷 API の拡張

パッケージ java.awt.print に次の 2 つのクラスが追加されました。 クラス JobAttributes では、出力先、コピー数、ページ範囲など、印刷ジョブの属性が制御されます。クラス PageAttributes では、用紙のサイズ、向き、印刷品質など、印刷ページの属性が制御されます。

これらのクラスは、クラス java.awt.Toolkit の新しいメソッドで使用されます。

getPrintJob(Frame, String, JobAttributes, PageAttributes)
印刷 API についての詳細は、「Java AWT: 印刷」を参照してください。

今後の Java プラットフォームのリリースでは、属性の使用に対するサポートが印刷 API に追加される予定です。

コンポーネント階層に対する変更を追跡するための新しいイベント型

Java 2 プラットフォームに対して新しいクラスがいくつか追加され、コンポーネント階層に対する変更を追跡するための標準的な方法が提供されます。新しい API は、 javax.swing.event.AncestorEvent によって提供される API の代わりに使用できます。 新しいイベントタイプが実装されている新しいクラスおよびインタフェースです。 次のメソッドが java.awt.Component に追加されました。 次のフィールドが java.awt.AWTEvent に追加されました。 クラス java.awt.AWTEventMulticaster に対して、インタフェース HierarchyListener および HierarchyBoundsListener が実装されました。また、次の新しいメソッドを使用できます。

AWT Native Interface

AWT Native Interface は、Java 2 プラットフォームにネイティブ描画エンジンを統合するための新しいインタフェースです。AWT Native Interface を使用すると、最良の描画パフォーマンスを発揮するネイティブの描画コンポーネントを使って UI を設計できます。

最も一般的な使用方法では、次の 4 つのステップが含まれます。

  1. Canvas を継承するクラスを定義する
  2. paint メソッドをネイティブとして宣言し、その共有ライブラリを静的ブロック内でロードする
  3. javah を使って、ネイティブな paint メソッド用の C/C++ ヘッダファイルを生成する (javah ドキュメントの Win32 版および Solaris 版を参照)
  4. ネイティブの paint メソッドを記述し、それを共有ライブラリとして構築する
AWT Native Interface 関連のヘッダファイルは、SDK の include ディレクトリに格納されています。これらは以下のとおりです。 これらのヘッダは、Java 2 プラットフォームの正式な仕様ではありません。これらのヘッダは、ネイティブ描画機能への標準的なアクセス方法が必要な開発者に提供されます。

より詳細な情報およびサンプルコードについては、「AWT Native Interface」を参照してください。


Copyright © 1999 Sun Microsystems, Inc. All Rights Reserved.


コメントの送付先: java-awt@java.sun.com
Sun