Windows Look & Feel の更新

概要

Windows Look & Feel 下で実行される理想的な Swing アプリケーションとは、実行中の対応するネイティブなアプリケーションと区別がつかないものであるべきですが、ネイティブな Windows Look & Feel (Windows 98、Windows 2000 など) と既存の Windows Look & Feel 実装の両方の変更が原因で、この理想に現実性がなくなってしまいました。ただし、このリリースでは、Windows デスクトップにシームレスに統合される、更新された Windows Look & Feel を提供しました。

このプロジェクトは独立したより小規模なプロジェクトの集まりで構成され、それぞれが以前のエミュレーションの欠如部分を修正したり、2000/98 機能を追跡する機能を追加しました。このプロジェクトが Swing と AWT の両方にまたがることもありました。

新しい「windows2000」パッケージを導入するよりも、com.sun.java.swing.plaf.windows の Look & Feel のパッケージを変更し、拡張する方法が選択されました。新しい機能のほとんどすべてが Windows のネイティブなユーザ設定から無関係であるので、更新された Windows Look & Feel パッケージは、Windows 95、Windows 98、Windows NT または Windows 2000 のどのオペレーティングシステムであっても、順調に実行されます。つまり、実行中の Swing アプリケーションが特定のユーザ設定 (メニューのフェードなど) が存在しないことを検出すると、Windows Look & Feel はその機能を実行しません。

このプロジェクトの焦点は、量ではなく、質でした。高品質な結果で機能を実装することが難しいと判断した場合は、より良い再生度でエミュレートできる将来のリリースまで、その機能の実装を延期しました。

エミュレーションバグの修正

Windows Look & Feel には多くのバグフィールドがあり、このリリースでその多くが修正されました。これらのバグについては、「w2K」というキーワードで追跡しています。これらの Windows Look & Feel のバグのリストは、「Windows Look & Feel のバグ」を参照してください。

デスクトップのプロパティのサポート

Swing 内の現在の Windows Look & Feel では、ユーザのデスクトップに対するカラースキーマのみを AWT の SystemColor 機構を通じて追跡しています。ただし、Windows のデスクトップでは、フォント、サウンド、メトリックスなどより多くの GUI をユーザが設定することができ、これらをいつでも変更することができて、Windows のプログラムにその変更を動的に反映させることができます。Swing は、広い範囲のユーザ設定に対応し、また、ユーザによって行われた動的な変更に対応してサポートするように改訂されました。詳細は、「Windows デスクトップ関連のプロパティのサポート」 を参照してください。

列折り返しのリスト

リストには 1 列を表示する幅しかありませんでしたが、Windows Explorer のウィンドウのように、複数の列に折り返して表示することがサポートされるように更新されました。この機能は、Windows ファイルチューザのより良いサポートのためにも使用されます。詳細は、JList 仕様の更新を参照してください。

ホットトラッキングのツールバーボタン

ツールバーの内側に含まれるボタンが外見上平らになり、「ロールオーバー」されるときにだけ、境界が表示されます。この機能は Metal の Look & Feel によってサポートされ、一般的な Swing ツールバー機能として追加されます。

タイトルバーのグラデーション

Windows 2000 の最上位のウィンドウのタイトルバーでは、特に指定しないかぎり、均質なバーカラーでなく、グラデーションのパターンが使用されます。JFrame などの最上位のウィンドウではこの方法は採用されませんでしたが、JInternalFrame のこのようなレンダリングを実装するために Java2D を使用する予定です。

スクロールホイールのサポート

今日のほとんどすべての PC にはマウスにスクロールホイールが付属しており、この AWT のサポートでは、スクロールホイール入力を追加中です。また、この新しいイベントを処理するために、JScrollPane および JScrollbar の、Swing スクロールコンポーネントを変更中です。AWT サポートの詳細については、「マウスホイールの API」、Swing 内のサポートの詳細については 「JScrollPane の変更」を参照してください。

キーボードナビゲーションの非表示

ウィンドウ内でユーザは、アプリケーションで Alt キーが押されるまでキーボードナビゲーションの手掛かりを表示しないようにするデスクトップのプロパティを設定できます。Alt キーが押された時点で、キーボードナビゲーションの手掛かりが表示されます。ユーザがデスクトップ上でこのオプションを設定すると、Swing はメニュー内にこの動作を実装します。詳細は、「キーボードナビゲーションの仕様」を参照してください。

メニュー/ツールヒントの切り替え効果

Windows Look & Feel へ追加されたもっとも視覚的にわかりやすい機能は、新しい様式的なメニューアニメーションです。Windows 98 の場合、スライドして引き出すことで表示されるようにメニューを設定できます。Windows 2000 では、メニューとツールヒントに時流に合った様式のフェードイン/フェードアウトが導入されました。

もっとも正確な視覚効果が保証されるように、この機能は、最上位の「重量級の」ウィンドウのメニューとツールヒントに集中して実装されました。これは、AWT 内部の Microsoft Windows ネイティブウィンドウアニメーション機能を利用しています。

ファイルチューザの改訂

Swing の JFileChooser は Windows のファイルチューザと非常に似ていますが、ネットワークのブラウジングおよび「マイ コンピュータ」、「マイ ネットワーク」などの Windows 仮想デスクトップへのサポートの不足など、Windows プラットフォーム上での使用を制限するいくつかの欠点があります。詳細は、「JFileChooser の仕様の更新」を参照してください。