JavaTM Standard Edition 6.0 の AWT 拡張機能 |
ドキュメントの目次 |
主な機能
修正されたバグ
既知のバグと問題
Java SE 6.0 で導入された機能は次のとおりです。
モーダリティー
この新しいモーダリティーモデルは、ダイアログボックスのモーダリティーブロックを処理するために導入されました。このモデルは次の4つのモーダリティータイプから構成されます。非モーダル、アプリケーションモーダル、ドキュメントモーダル、およびツールキットモーダル。
public Dialog(Window owner, String title, Dialog.ModalityType modalityType,GraphicsConfiguration gc)
modalityTypes
パラメータは、ダイアログボックスが表示された際に、そのボックスがほかのウィンドウへの入力をブロックするかどうかを指定します。null 値やサポートされていないモーダリティータイプは、非モーダルタイプに等しくなります。Dialog
クラスのgetModalityType
メソッドとsetModalityType
メソッドを使えば、それぞれダイアログボックスのモーダリティータイプの取得と設定を行えます。どのトップレベルウィンドウも、モーダルダイアログによってブロックされないようにマークすることができます。このプロパティーを使えば「モーダル除外」モードを設定できます。
Window
クラスのsetModalExclusionType
メソッドは、次のいずれかのモーダル除外モードを指定します。APPLICATION_EXCLUDE
、TOOLKIT_EXCLUDE
、またはNO_EXCLUDE
。モーダリティーの詳細については、Swing チュートリアルの「How to Use Modality in Dialogs」節を参照してください。
デスクトップ
Desktop API (java.awt.Desktop
) の提供目的は、Java アプリケーションが、特定のファイルタイプに関連付けられたデフォルトアプリケーションと対話できるようにすることです。提供されているアクションはすべて、次のようなDesktop.Action
列挙インスタンスとして表されます。
- BROWSE — ホストのデフォルトのブラウザによって実行される参照アクションを表します。
- MAIL — ホストのデフォルトの電子メールクライアントによって実行されるメールアクションを表します。
- OPEN — 特定のファイルタイプのオープンに関連付けられたアプリケーションによって実行されるオープンアクションを表します。
- EDIT — 特定のファイルタイプの編集に関連付けられたアプリケーションによって実行される編集アクションを表します
- PRINT — 特定のファイルタイプの印刷に関連付けられたアプリケーションによって実行される印刷アクションを表します。
あるアクションが現在のプラットフォームでサポートされているかどうかをチェックするには、
Desktop
クラスのisSupported
メソッドを使用します。
Desktop
クラスの使用方法の詳細については、Swing チュートリアルの「How to Integrate with the Desktop Class」節を参照してください。スプラッシュ画面
仮想マシンの起動前にアプリケーションからスプラッシュ画面を表示できるようにするための新しい解決方法が、導入されました。
SplashScreen
クラスにスプラッシュ画面を作成するように要求することはできませんが、Java アプリケーションはスプラッシュ画面を閉じたり、スプラッシュ画面のイメージを変更したり、イメージの位置やサイズを取得したり、スプラッシュ画面内で描画したりできます。SplashScreen
クラスのインスタンスを取得するには、getSplashScreen()
static メソッドを使用します。コマンド行からスプラッシュ画面付きでアプリケーションを実行するには、次のコマンドを使用します。
java -splash:<file name> <class name>スプラッシュ画面の詳細については、Swing チュートリアルの「How to Create a Splash Screen」節を参照してください。
システムトレイ
SystemTray
クラスは、デスクトップのシステムトレイを表すためのものです。システムトレイにアクセスするには、getSystemTray()
static メソッドを呼び出します。システムトレイには、TrayIcon
クラスのオブジェクトで表される 1 つ以上のトレイアイコンを含めることができます。ただし、TrayIcon
クラスの機能はトレイアイコンを作成することだけではありません。これには次のように、テキストツールヒント、ポップアップメニュー、およびバルーンメッセージも含まれます。TrayIcon trayIcon = new TrayIcon(createImage("icon.gif", "tray icon")); trayIcon.displayMessage("Sun TrayIcon Demo", "This is an info message", TrayIcon.MessageType.INFO); trayIcon.setToolTip("Sun TrayIcon");注:
TrayIcon
クラスの現在の実装で提供されている Swing コンポーネントのサポートには、制限があります。この問題に対する回避方法案は、バグデータベース内に記述されています。バグ ID 6285881 を参照してください。システムトレイやトレイアイコンの詳細については、Swing チュートリアルの「How to Use the System Tray」節を参照してください。
コンポーネントのレイアウト機能の拡張
java.awt.Component
クラスの次の 2 つの新メソッドを使えば、コンポーネントの最上部から測定されたベースラインを取得したり、コンポーネントのサイズ変更時にベースラインの変更を処理したりできます。
public int getBaseline(int width int height)
public Component.BaselineResizeBehavior getBaselineResizeBehavior()
FlowLayout:
ベースラインを基準にしたコンポーネントの垂直方向の位置合わせを制御できるよう、次の 2 つのメソッドが導入されました。
GridBagLayout:
GridBagLayout
クラスによるコンポーネントのレイアウト機能を強化するために、次の制約がGridBagConstraints
クラスに追加されました。さらに、
BASELINE
BASELINE_LEADING
BASELINE_TRAILING
ABOVE_BASELINE
ABOVE_BASELINE_LEADING
ABOVE_BASELINE_TRAILING
BELOW_BASELINE
BELOW_BASELINE_LEADING
BELOW_BASELINE_TRAILING
GridBagLayout
によるコンポーネントレイアウト中にコンテナ内のすべてのコンポーネントの align、size、および baseline パラメータを格納できるよう、GridBagLayoutInfo
クラスが導入されました。
Window
クラスの拡張ウィンドウのアイコンとして表示されるイメージを処理するための新メソッドが、
Window
クラスに追加されました。setIconImage(Image image)
メソッドが 1 つのイメージのみを設定するのに対し、setIconImages(List<? extends Image> icons)
メソッドでは寸法の異なる一連のイメージがサポートされ、それらのイメージがプラットフォームの機能に応じて適用されます。Java SE 6 では、親フレームを指定しないで
Window
またはDialog
オブジェクトを作成することができますが、そのようなオブジェクトのコンストラクタのowner
パラメータはnull
に等しくなります。
主なバグ修正の一覧を次に示します。6404008 マウスイベントの配信がドラッグの感度に依存する:
マウスドラッグイベントは、オペレーティングシステムのドラッグ感度設定に達したあとで受信されていました。提案された解決方法では、オペレーティングシステムのドラッグ距離パラメータが無視されます。マウスが最初に動いた時点で Java ドラッグイベントが生成されます。
6242833 Linux/JDS 3 上でウィンドウを最大化するとマウスカーソルの動作がおかしくなる:
ウィンドウの最大化中に、カーソルの更新に不可欠ないくつかのイベントが配信されていませんでした。修正には、XWindow 内での x-crossing イベントの処理が含まれます。
4841881: Windows のルック&フィールで Alt+Tab キーを使ってタブ操作を行うと、アプリケーションのメニューバーにフォーカスが移動する
Alt+Tab キーを使って Java ウィンドウからネイティブアプリケーションウィンドウにいったん移動したあとで元の Java ウィンドウに戻ると、Java ウィンドウの最初のメニュー項目にフォーカスが移動していました。 提案された修正により、Java ウィンドウで最初にフォーカスが存在していたコンポーネントにフォーカスが残るようになりました。
6291992: 編集可能なすべてのフィールドが凍結される
JTextField
やJTextArea
などの編集可能なフィールドが、たとえ以前に編集されたものであっても、編集できなくなったりフォーカスを取得できなくなったりしていました。コンボボックスやテーブル、ラジオボタンといったその他のコンポーネントは、編集可能なままです。6176814: マルチクリックの処理
XWindow.java のコードには、マルチクリックの処理が含まれていません。このため、ユーザーが画面上でマウスを Linux ボックスにドラッグすると、ユーザーがシングルクリックを期待しているのにダブルクリックが発生していました。同様に、ユーザーがクリックなしを期待しているのにシングルクリックが発生していました。この修正には、スマッジ係数を適用するための
AWT_MULTICLICK_SMUDGE
変数が含まれます。この変数により、マウスを少し動かしただけではマルチクリック状態変数が消去されなくなります。5051557: アプレットがキーボードコマンドに応答しない
フォーカスがアプレット自体によって取得されず、一見、アプレットに埋め込まれたフレームに移動していました。この非互換の原因は、Java SE 1.4 で導入されたフォーカス再アーキテクチャーにありました。この修正により、最初の正しい動作が回復されます。
4320050:
Frame
オブジェクトの最小サイズが適用されていない
Window.setMinimumSize()
メソッドの変更により、ユーザーがトップレベルウィンドウのサイズを指定された寸法よりも小さくできなくなりました。これまで、トップレベルウィンドウで設定された最小サイズはプラットフォームによって無視されていました。したがって、トップレベルウィンドウのminimumSize
プロパティーを独自のニーズに使用しているコードは、この変更の影響を受ける可能性があります。
6199167: ライブサイズ変更
Windows 上のネイティブアプリケーションは、サイズ変更時にレイアウトや描画を動的にやり直すためのプロパティーを備えていました。このプロパティーはシステムのデスクトップ設定によって制御されていました。Java はこのプロパティーをデフォルトで無効にします。Java SE 6 では、この必須プロパティーがデフォルトで有効化されます。
4360364: キリル文字入力がサポートされていない
ロケールの定義が不適切であった場合、ネイティブのインプットメソッドは keysym の処理を行わず、それらをそのまま AWT の
handleKeyEvent
ルーチンに渡していました。この修正では変換テーブルが追加され、インプットメソッドを使用しない状況でキーイベント処理が一般に簡素化されます。
次に、リリース 6.0 で発生する可能性がある既知の問題のリストを示します。5070056:
JWindow
コンポーネントがほかのすべてのウィンドウの手前に表示されるSolaris と Linux で、
JWindow
コンポーネントがほかのすべてのウィンドウの手前に表示され、ほかのウィンドウがその後ろに隠れてしまいます。この問題を回避するには、デコレートされていないフレームを使用してください。6387273: JVM がクラッシュする
トップレベルの表示/破棄を繰り返すなど、いくつかの複合的な状況下で、JVM がクラッシュすることがあります。
Copyright © 1999-2006 Sun Microsystems, Inc. All Rights Reserved. |